diff --git a/contracts/.github/workflows/build-and-test.yml b/contracts/.github/workflows/build-and-test.yml new file mode 100644 index 000000000..3712a342a --- /dev/null +++ b/contracts/.github/workflows/build-and-test.yml @@ -0,0 +1,44 @@ +name: Build and Test Workflow + +on: + push: + branches: + - main + - dev + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' # Adjust this as needed for your project + + - name: Install dependencies + run: npm install + + - name: Install Foundry + run: | + curl -L https://foundry.paradigm.xyz | bash + export PATH="$PATH:/home/runner/.config/.foundry/bin" + foundryup + forge install + + - name: Generate Ethereum Private Key and Create .env File and run make + run: | + PRIVATE_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))") + echo "export PRIVATE_KEY=0x$PRIVATE_KEY" > .env + echo "export RPC_URL=http://127.0.0.1:1337" >> .env + echo "export CHAIN_ID=1337" >> .env + export PATH="$PATH:/home/runner/.config/.foundry/bin" + npx ganache-cli -g0 -p1337 --account 0x$PRIVATE_KEY,1001901919191919191 & + sleep 5 + make + + diff --git a/contracts/.out/AccountHelper.sol/AccountHelper.json b/contracts/.out/AccountHelper.sol/AccountHelper.json new file mode 100644 index 000000000..4c5199797 --- /dev/null +++ b/contracts/.out/AccountHelper.sol/AccountHelper.json @@ -0,0 +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":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/contracts/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json b/contracts/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json new file mode 100644 index 000000000..3b015ebe8 --- /dev/null +++ b/contracts/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json @@ -0,0 +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$__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/contracts/.out/CheckpointingFacet.sol/CheckpointingFacet.json b/contracts/.out/CheckpointingFacet.sol/CheckpointingFacet.json new file mode 100644 index 000000000..c8cf00cdd --- /dev/null +++ b/contracts/.out/CheckpointingFacet.sol/CheckpointingFacet.json @@ -0,0 +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$__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/contracts/.out/CrossMsgHelper.sol/CrossMsgHelper.json b/contracts/.out/CrossMsgHelper.sol/CrossMsgHelper.json new file mode 100644 index 000000000..715cfdd28 --- /dev/null +++ b/contracts/.out/CrossMsgHelper.sol/CrossMsgHelper.json @@ -0,0 +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":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/contracts/.out/CrossNet.sol/CrossNet.json b/contracts/.out/CrossNet.sol/CrossNet.json new file mode 100644 index 000000000..6447edfcf --- /dev/null +++ b/contracts/.out/CrossNet.sol/CrossNet.json @@ -0,0 +1 @@ +{"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/contracts/.out/DiamondCutFacet.sol/DiamondCutFacet.json b/contracts/.out/DiamondCutFacet.sol/DiamondCutFacet.json new file mode 100644 index 000000000..628ba0f19 --- /dev/null +++ b/contracts/.out/DiamondCutFacet.sol/DiamondCutFacet.json @@ -0,0 +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":[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/contracts/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json b/contracts/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json new file mode 100644 index 000000000..7822474ac --- /dev/null +++ b/contracts/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json @@ -0,0 +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":[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/contracts/.out/ERC20Helper.sol/DummyERC20.json b/contracts/.out/ERC20Helper.sol/DummyERC20.json new file mode 100644 index 000000000..98f03b68f --- /dev/null +++ b/contracts/.out/ERC20Helper.sol/DummyERC20.json @@ -0,0 +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:93:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2245:13:23;179:387:93;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;-1:-1:-1;179:387:93;;;;-1:-1:-1;;;;179:387:93;;;;;;;;;;;;;;;;;;;;2268:17:23;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;2868:6:21;179:387:93;;380:10;-1:-1:-1;;;;;;179:387:93;;;;;;;;;;380:10;-1:-1:-1;;;;;179:387:93;2916:40:21;-1:-1:-1;;2916:40:21;-1:-1:-1;254:1:93;179:387;380:10;9575:21:23;9571:91;;179:387:93;8279:22:23;179:387:93;;;;;;;;;;;-1:-1:-1;179:387:93;9139:26:23;179:387:93;8279:22:23;179:387:93;380:10;179:387;;;;;;;;;;;;;;;;;;;380:10;9139:26:23;;179:387:93;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;-1:-1:-1;179:387:93;9571:91:23;-1:-1:-1;179:387:93;9619:32:23;;;;;;;;179:387:93;9619:32:23;179:387:93;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;-1:-1:-1;179:387:93;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;-1:-1:-1;179:387:93;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;-1:-1:-1;179:387:93;;;;;;;;;;;;-1:-1:-1;179:387:93;;2268:17:23;179:387:93;;-1:-1:-1;179:387:93;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;-1:-1:-1;179:387:93;;-1:-1:-1;179:387:93;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;-1:-1:-1;179:387:93;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;-1:-1:-1;;179:387:93;;;-1:-1:-1;;;;;179:387:93;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:93;;;;;;;;;;-1:-1:-1;;179:387:93;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:93;;;;;;:::i;:::-;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:93;;;;2491:22:21;;2487:91;;179:387:93;;2868:6:21;179:387:93;;;;;;;;2868:6:21;179:387:93;;2916:40:21;;;;179:387:93;;2487:91:21;179:387:93;-1:-1:-1;;;2536:31:21;;;;;179:387:93;;;;;2536:31:21;179:387:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;179:387:93;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;179:387:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;179:387:93;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;179:387:93;;7112:36:23;179:387:93;;;;720:10:30;;7112:36:23;:::i;6906:148::-;179:387:93;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;179:387:93;;;6969:74:23;;;179:387:93;;;;;;;;;;;;;;;6969:74:23;;;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:93;;;;;-1:-1:-1;;179:387:93;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;179:387:93;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:93;;;;;-1:-1:-1;;179:387:93;;;;;;;;-1:-1:-1;179:387:93;;;;;;-1:-1:-1;;;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:6:21;179:387:93;;;-1:-1:-1;;;;;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;223:32;179:387;;;;;;;;;;;;;;;;;;;;1364:62:21;;:::i;:::-;2868:6;179:387:93;;-1:-1:-1;;;;;;179:387:93;;;;;;;-1:-1:-1;;;;;179:387:93;2916:40:21;179:387:93;;2916:40:21;179:387:93;;;;;;;;;;-1:-1:-1;;179:387:93;;;;;;;;-1:-1:-1;;;;;179:387:93;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:93;;9575:21:23;;9571:91;;179:387:93;;;9139:26:23;179:387:93;8279:22:23;179:387:93;;8279:22:23;179:387:93;8279:22:23;:::i;:::-;;179:387:93;;;;;;;;;;;;;;;;;;;;9139:26:23;179:387:93;;9571:91:23;179:387:93;;;;9619:32:23;;;;;;;;179:387:93;9619:32:23;179:387:93;;;;;;;;;;;;;;6139:38:23;179:387:93;;6139:38:23;179:387:93;;:::i;:::-;720:10:30;179:387:93;;;;;;;;-1:-1:-1;;;;;179:387:93;;;;;;;;;;;;;;6139:38:23;:::i;:::-;720:10:30;;6139:38:23;:::i;179:387:93:-;;;;;;;;;;;;;;;;;3358:2:23;179:387:93;;;;;;;;;;;-1:-1:-1;;179:387:93;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;720:10:30;179:387:93;;;;;;11506:17:23;;;11486:37;;11482:306;;179:387:93;;5542:6:23;;;;;;:::i;11482:306::-;11543:25;;;11539:132;;179:387:93;;;;11737:25:23;5542:6;179:387:93;;;;720:10:30;11737:25:23;;:::i;:::-;11482:306;;;;;11539:132;179:387:93;;-1:-1:-1;;;11595:61:23;;720:10:30;11595:61:23;;;179:387:93;;;;;;;;;;;;;;;;;;;;6969:74:23;;;179:387:93;;;;;;;;;;;;;;;;3505:12:23;179:387:93;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;179:387:93;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;179:387:93:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:93;;;;;-1:-1:-1;;179:387:93;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:93;;;;;-1:-1:-1;;179:387:93;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:93;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;179:387:93;;;;;;:::o;1660:162:21:-;1574:6;179:387:93;-1:-1:-1;;;;;179:387:93;720:10:30;1719:23:21;1715:101;;1660:162::o;1715:101::-;179:387:93;;-1:-1:-1;;;1765:40:21;;720:10:30;1765:40:21;;;179:387:93;;;1765:40:21;179:387:93;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7553:302:23;;-1:-1:-1;;;;;179:387:93;;;;7637:18:23;;7633:86;;179:387:93;7732:16:23;;;7728:86;;8241:443;179:387:93;;;;;;;;;;;8387:20:23;;;;8383:117;;179:387:93;;;;;9139:26:23;179:387:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;179:387:93;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;179:387:93;;;;8434:51:23;;;179:387:93;;;;;;;;;;;;;;;;6969:74:23;7728:86;179:387:93;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;179:387:93;;;7771:32:23;7633:86;179:387:93;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;179:387:93;;;7678:30:23;10659:380;-1:-1:-1;;;;;179:387:93;;;;10756:19:23;;10752:89;;179:387:93;10854:21:23;;;10850:90;;179:387:93;11000:32:23;179:387:93;;10773:1:23;179:387:93;;;;;10773:1:23;179:387:93;;10773:1:23;179:387:93;;;;;10773:1:23;179:387:93;;;;;;;11000:32:23;10659:380::o;10850:90::-;179:387:93;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;179:387:93;;;10898:31:23;10752:89;179:387:93;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;179:387:93;;;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":56152,"exportedSymbols":{"Context":[32860],"DummyERC20":[56151],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304],"Ownable":[31214]},"nodeType":"SourceUnit","src":"46:521:93","nodes":[{"id":56102,"nodeType":"PragmaDirective","src":"46:23:93","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56103,"nodeType":"ImportDirective","src":"71:54:93","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":56152,"sourceUnit":31922,"symbolAliases":[],"unitAlias":""},{"id":56104,"nodeType":"ImportDirective","src":"126:51:93","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"openzeppelin-contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":56152,"sourceUnit":31215,"symbolAliases":[],"unitAlias":""},{"id":56151,"nodeType":"ContractDefinition","src":"179:387:93","nodes":[{"id":56111,"nodeType":"VariableDeclaration","src":"223:32:93","nodes":[],"constant":false,"functionSelector":"771282f6","mutability":"mutable","name":"currentSupply","nameLocation":"238:13:93","scope":56151,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56109,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":56110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":56135,"nodeType":"FunctionDefinition","src":"262:199:93","nodes":[],"body":{"id":56134,"nodeType":"Block","src":"414:47:93","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":56129,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"430:5:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:7:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56131,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56117,"src":"439:14:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56128,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"424:5:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:30:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56133,"nodeType":"ExpressionStatement","src":"424:30:93"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":56120,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"380:3:93","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":56121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"384:6:93","memberName":"sender","nodeType":"MemberAccess","src":"380:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56122,"kind":"baseConstructorSpecifier","modifierName":{"id":56119,"name":"Ownable","nameLocations":["372:7:93"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"372:7:93"},"nodeType":"ModifierInvocation","src":"372:19:93"},{"arguments":[{"id":56124,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56113,"src":"398:5:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":56125,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56115,"src":"405:7:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":56126,"kind":"baseConstructorSpecifier","modifierName":{"id":56123,"name":"ERC20","nameLocations":["392:5:93"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"392:5:93"},"nodeType":"ModifierInvocation","src":"392:21:93"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56113,"mutability":"mutable","name":"_name","nameLocation":"297:5:93","nodeType":"VariableDeclaration","scope":56135,"src":"283:19:93","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56112,"name":"string","nodeType":"ElementaryTypeName","src":"283:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56115,"mutability":"mutable","name":"_symbol","nameLocation":"326:7:93","nodeType":"VariableDeclaration","scope":56135,"src":"312:21:93","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56114,"name":"string","nodeType":"ElementaryTypeName","src":"312:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56117,"mutability":"mutable","name":"_initialSupply","nameLocation":"351:14:93","nodeType":"VariableDeclaration","scope":56135,"src":"343:22:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56116,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:98:93"},"returnParameters":{"id":56127,"nodeType":"ParameterList","parameters":[],"src":"414:0:93"},"scope":56151,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56150,"nodeType":"FunctionDefinition","src":"467:97:93","nodes":[],"body":{"id":56149,"nodeType":"Block","src":"528:36:93","nodes":[],"statements":[{"expression":{"arguments":[{"id":56145,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56137,"src":"544:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56146,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56139,"src":"549:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56144,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"538:5:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"538:19:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56148,"nodeType":"ExpressionStatement","src":"538:19:93"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":56142,"kind":"modifierInvocation","modifierName":{"id":56141,"name":"onlyOwner","nameLocations":["518:9:93"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"518:9:93"},"nodeType":"ModifierInvocation","src":"518:9:93"}],"name":"mint","nameLocation":"476:4:93","parameters":{"id":56140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56137,"mutability":"mutable","name":"_to","nameLocation":"489:3:93","nodeType":"VariableDeclaration","scope":56150,"src":"481:11:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56136,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56139,"mutability":"mutable","name":"_amount","nameLocation":"502:7:93","nodeType":"VariableDeclaration","scope":56150,"src":"494:15:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56138,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:30:93"},"returnParameters":{"id":56143,"nodeType":"ParameterList","parameters":[],"src":"528:0:93"},"scope":56151,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":56105,"name":"ERC20","nameLocations":["202:5:93"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"202:5:93"},"id":56106,"nodeType":"InheritanceSpecifier","src":"202:5:93"},{"baseName":{"id":56107,"name":"Ownable","nameLocations":["209:7:93"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"209:7:93"},"id":56108,"nodeType":"InheritanceSpecifier","src":"209:7:93"}],"canonicalName":"DummyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56151,31214,31921,31256,32068,31999,32860],"name":"DummyERC20","nameLocation":"188:10:93","scope":56152,"usedErrors":[31095,31100,31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT OR Apache-2.0"},"id":93} \ No newline at end of file diff --git a/contracts/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json b/contracts/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json new file mode 100644 index 000000000..a45ef2adc --- /dev/null +++ b/contracts/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json @@ -0,0 +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:94:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:13:23;669:349:94;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;-1:-1:-1;669:349:94;;;;-1:-1:-1;;;;669:349:94;;;;;;;;;;;;;;;;;;;;2268:17:23;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;9575:21:23;;9571:91;;8279:22;669:349:94;;;;;;;;;;-1:-1:-1;8279:22:23;669:349:94;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9139:26:23;;;669:349:94;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;-1:-1:-1;669:349:94;9571:91:23;669:349:94;;-1:-1:-1;669:349:94;;9619:32:23;;;;;;;;669:349:94;9619:32:23;669:349:94;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;-1:-1:-1;669:349:94;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;-1:-1:-1;669:349:94;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;-1:-1:-1;669:349:94;;;;;;;;;;;;-1:-1:-1;669:349:94;;2268:17:23;669:349:94;;-1:-1:-1;669:349:94;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;-1:-1:-1;669:349:94;;-1:-1:-1;669:349:94;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;-1:-1:-1;669:349:94;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;-1:-1:-1;;669:349:94;;;-1:-1:-1;;;;;669:349:94;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:94;;;;;;;;;;-1:-1:-1;;669:349:94;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;669:349:94;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;669:349:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;669:349:94;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;669:349:94;;7112:36:23;669:349:94;;;;720:10:30;;7112:36:23;:::i;6906:148::-;669:349:94;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;669:349:94;;;6969:74:23;;;669:349:94;;;;;;;;;;;;;;;6969:74:23;;;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:94;;;;;-1:-1:-1;;669:349:94;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;669:349:94;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:94;;;;;-1:-1:-1;;669:349:94;;;;;;;;-1:-1:-1;669:349:94;;;;;;-1:-1:-1;;;669:349:94;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:94;;;;1121:6:25;669:349:94;;:::i;:::-;;;720:10:30;1089:6:25;720:10:30;;1089:6:25;;:::i;:::-;1121;:::i;:::-;669:349:94;;;;;;;;;;-1:-1:-1;;669:349:94;;;;;;;;-1:-1:-1;;;;;669:349:94;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:94;;;;654:6:25;669:349:94;;720:10:30;654:6:25;:::i;669:349:94:-;;;;;;;;;;;;;;;;:::i;:::-;720:10:30;669:349:94;;;;;;;;;;-1:-1:-1;;;;;669:349:94;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;720:10:30;6139:38:23;720:10:30;;;6139:38:23;:::i;669:349:94:-;-1:-1:-1;;;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;3358:2:23;669:349:94;;;;;;;;;;;-1:-1:-1;;669:349:94;;;;;;5542:6:23;669:349:94;;:::i;:::-;;;:::i;:::-;;;720:10:30;5505:6:23;720:10:30;;5505:6:23;;:::i;:::-;5542;:::i;669:349:94:-;;;;;;;;;;;;;;;;3505:12:23;669:349:94;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;669:349:94;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;669:349:94:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:94;;;;;-1:-1:-1;;669:349:94;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:94;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;669:349:94;;;;;;:::o;7553:302:23:-;;-1:-1:-1;;;;;669:349:94;;;;7637:18:23;;7633:86;;669:349:94;7732:16:23;;;7728:86;;8241:443;669:349:94;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:94;;;;;9139:26:23;669:349:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;669:349:94;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:94;;;;8434:51:23;;;669:349:94;;;;;;;;;;;;;;;;6969:74:23;7728:86;669:349:94;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;669:349:94;;;7771:32:23;7633:86;669:349:94;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;669:349:94;;;7678:30:23;10659:380;-1:-1:-1;;;;;669:349:94;;;;10756:19:23;;10752:89;;669:349:94;10854:21:23;;;10850:90;;669:349:94;11000:32:23;669:349:94;;10773:1:23;669:349:94;;;;;10773:1:23;669:349:94;;10773:1:23;669:349:94;;;;;10773:1:23;669:349:94;;;;;;;11000:32:23;10659:380::o;10850:90::-;669:349:94;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;669:349:94;;;10898:31:23;10752:89;669:349:94;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;669:349:94;;;10798:32:23;11320:474;;;;;669:349:94;;;;;;;;-1:-1:-1;669:349:94;;;;;-1:-1:-1;669:349:94;;;;-1:-1:-1;669:349:94;;;;-1:-1:-1;669:349:94;;11506:17:23;;;11486:37;;11482:306;;11320:474;;;;;;:::o;11482:306::-;11543:25;;;11539:132;;11737:25;669:349:94;;;11737:25:23;;:::i;:::-;11482:306;;;;;;11539:132;669:349:94;;-1:-1:-1;;;11595:61:23;;-1:-1:-1;;;;;669:349:94;;;;11595:61:23;;;669:349:94;;;;;;;;;;;;;6969:74:23;10028:208;;-1:-1:-1;;;;;669:349:94;;;10099:21:23;;10095:89;;8241:443;669:349:94;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:94;;9139:26:23;669:349:94;;;;;;;;;;;;;;;8863:22:23;669:349:94;;8863:22:23;669:349:94;;;;;;9139:26:23;10028:208::o;8383:117::-;669:349:94;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:94;;;;8434:51:23;;;669:349:94;;;;;;;;;;;;;;;;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":56181,"exportedSymbols":{"Context":[32860],"ERC20":[31921],"ERC20Burnable":[32043],"ERC20PresetFixedSupply":[56180],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"129:890:94","nodes":[{"id":56153,"nodeType":"PragmaDirective","src":"129:23:94","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56154,"nodeType":"ImportDirective","src":"154:73:94","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"openzeppelin-contracts/token/ERC20/extensions/ERC20Burnable.sol","nameLocation":"-1:-1:-1","scope":56181,"sourceUnit":32044,"symbolAliases":[],"unitAlias":""},{"id":56180,"nodeType":"ContractDefinition","src":"669:349:94","nodes":[{"id":56179,"nodeType":"FunctionDefinition","src":"860:156:94","nodes":[],"body":{"id":56178,"nodeType":"Block","src":"972:44:94","nodes":[],"statements":[{"expression":{"arguments":[{"id":56174,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56166,"src":"988:5:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56175,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"995:13:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56173,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"982:5:94","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"982:27:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56177,"nodeType":"ExpressionStatement","src":"982:27:94"}]},"documentation":{"id":56158,"nodeType":"StructuredDocumentation","src":"724:131:94","text":" @dev Mints `initialSupply` amount of token and transfers them to `owner`.\n See {ERC20-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":56169,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56160,"src":"958:4:94","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":56170,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56162,"src":"964:6:94","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":56171,"kind":"baseConstructorSpecifier","modifierName":{"id":56168,"name":"ERC20","nameLocations":["952:5:94"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"952:5:94"},"nodeType":"ModifierInvocation","src":"952:19:94"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56160,"mutability":"mutable","name":"name","nameLocation":"886:4:94","nodeType":"VariableDeclaration","scope":56179,"src":"872:18:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56159,"name":"string","nodeType":"ElementaryTypeName","src":"872:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56162,"mutability":"mutable","name":"symbol","nameLocation":"906:6:94","nodeType":"VariableDeclaration","scope":56179,"src":"892:20:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56161,"name":"string","nodeType":"ElementaryTypeName","src":"892:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56164,"mutability":"mutable","name":"initialSupply","nameLocation":"922:13:94","nodeType":"VariableDeclaration","scope":56179,"src":"914:21:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56163,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56166,"mutability":"mutable","name":"owner","nameLocation":"945:5:94","nodeType":"VariableDeclaration","scope":56179,"src":"937:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56165,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"871:80:94"},"returnParameters":{"id":56172,"nodeType":"ParameterList","parameters":[],"src":"972:0:94"},"scope":56180,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":56156,"name":"ERC20Burnable","nameLocations":["704:13:94"],"nodeType":"IdentifierPath","referencedDeclaration":32043,"src":"704:13:94"},"id":56157,"nodeType":"InheritanceSpecifier","src":"704:13:94"}],"canonicalName":"ERC20PresetFixedSupply","contractDependencies":[],"contractKind":"contract","documentation":{"id":56155,"nodeType":"StructuredDocumentation","src":"229:439:94","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":[56180,32043,31921,31256,32068,31999,32860],"name":"ERC20PresetFixedSupply","nameLocation":"678:22:94","scope":56181,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":94} \ No newline at end of file diff --git a/contracts/.out/FvmAddress.sol/FvmAddress.json b/contracts/.out/FvmAddress.sol/FvmAddress.json new file mode 100644 index 000000000..93e542a42 --- /dev/null +++ b/contracts/.out/FvmAddress.sol/FvmAddress.json @@ -0,0 +1 @@ +{"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/contracts/.out/FvmAddressHelper.sol/FvmAddressHelper.json b/contracts/.out/FvmAddressHelper.sol/FvmAddressHelper.json new file mode 100644 index 000000000..3f8cf2dca --- /dev/null +++ b/contracts/.out/FvmAddressHelper.sol/FvmAddressHelper.json @@ -0,0 +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":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/contracts/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json b/contracts/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json new file mode 100644 index 000000000..c11e5a205 --- /dev/null +++ b/contracts/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json @@ -0,0 +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:95:-:0;;;;;;;1594:4:2;240:611:95;;;;1594:4:2;240:611:95;;;1594:4:2;240:611:95;3201:4:5;240:611:95;;;3201:4:5;240:611:95;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;240:611:95;;;;:::i;:::-;;1671:64:2;240:611:95;;1671:64:2;;;:::i;:::-;240:611:95;;;1982:18:8;240:611:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:95;;;;;;;;-1:-1:-1;240:611:95;;;;;-1:-1:-1;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:95;;;;;-1:-1:-1;240:611:95;;;;;;;;;-1:-1:-1;240:611:95;;;;-1:-1:-1;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;240:611:95;;;;:::i;:::-;;1671:64:2;240:611:95;;1671:64:2;;;:::i;:::-;240:611:95;;;2899:18:8;240:611:95;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:95;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;240:611:95;;;;:::i;:::-;;1671:64:2;240:611:95;;1671:64:2;;;:::i;:::-;240:611:95;;;2416:18:8;240:611:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:95;;;;;;;;-1:-1:-1;240:611:95;;;;;-1:-1:-1;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:95;;;;;-1:-1:-1;240:611:95;;;;;;;;;-1:-1:-1;240:611:95;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;240:611:95;;;;:::i;:::-;;1671:64:2;240:611:95;;1671:64:2;;;:::i;:::-;240:611:95;;;2592:26:8;240:611:95;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:95;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:95;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;240:611:95;;;;;;;;;;;;;;;;;1671:64:2;240:611:95;1671:64:2;;;;;;;;;;;240:611:95;1671:64:2;:::o;:::-;240:611:95;;;1671:64:2;;;;;;;;;;240:611:95;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;240:611:95;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;240:611:95;;;2196:43:2;;;240:611:95;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;240:611:95;;-1:-1:-1;1671:64:2;;240:611:95;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;240:611:95;1671:64:2;2086:175;;;240:611:95;;;;;;1671:64:2;240:611:95;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;240:611:95;;;1671:64:2;240:611:95;;;-1:-1:-1;;240:611:95;2196:43:2;1671:64;240:611:95;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;240:611:95;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;240:611:95;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;240:611:95;1671:64:2;;;240:611:95;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;240:611:95;1671:64:2;240:611:95;;;;;;;;;;;:::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":56277,"exportedSymbols":{"DSTest":[3720],"DelegatedAddress":[49958],"FvmAddress":[49951],"FvmAddressHelper":[40906],"FvmAddressHelperTest":[56276],"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:95","nodes":[{"id":56182,"nodeType":"PragmaDirective","src":"46:23:95","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56183,"nodeType":"ImportDirective","src":"71:28:95","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":56277,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":56184,"nodeType":"ImportDirective","src":"100:31:95","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":56277,"sourceUnit":22287,"symbolAliases":[],"unitAlias":""},{"id":56185,"nodeType":"ImportDirective","src":"133:44:95","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":56277,"sourceUnit":40907,"symbolAliases":[],"unitAlias":""},{"id":56187,"nodeType":"ImportDirective","src":"178:60:95","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":56277,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":56186,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"186:10:95","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56276,"nodeType":"ContractDefinition","src":"240:611:95","nodes":[{"id":56193,"nodeType":"UsingForDirective","src":"284:38:95","nodes":[],"global":false,"libraryName":{"id":56190,"name":"FvmAddressHelper","nameLocations":["290:16:95"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"290:16:95"},"typeName":{"id":56192,"nodeType":"UserDefinedTypeName","pathNode":{"id":56191,"name":"FvmAddress","nameLocations":["311:10:95"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"311:10:95"},"referencedDeclaration":49951,"src":"311:10:95","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":56275,"nodeType":"FunctionDefinition","src":"328:521:95","nodes":[],"body":{"id":56274,"nodeType":"Block","src":"403:446:95","nodes":[],"statements":[{"assignments":[56201],"declarations":[{"constant":false,"id":56201,"mutability":"mutable","name":"converted","nameLocation":"482:9:95","nodeType":"VariableDeclaration","scope":56274,"src":"469:22:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56200,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56209,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56204,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56195,"src":"504:6:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"511:6:95","memberName":"length","nodeType":"MemberAccess","src":"504:13:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":56206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:95","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"504:17:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"494:9:95","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56202,"name":"bytes","nodeType":"ElementaryTypeName","src":"498:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"494:28:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"469:53:95"},{"assignments":[56211],"declarations":[{"constant":false,"id":56211,"mutability":"mutable","name":"_base","nameLocation":"546:5:95","nodeType":"VariableDeclaration","scope":56274,"src":"533:18:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56210,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56213,"initialValue":{"hexValue":"30313233343536373839616263646566","id":56212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"554:18:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"nodeType":"VariableDeclarationStatement","src":"533:39:95"},{"body":{"id":56263,"nodeType":"Block","src":"627:157:95","statements":[{"expression":{"id":56241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56225,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56201,"src":"641:9:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56229,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56226,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56215,"src":"651:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":56227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"655:1:95","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"651:5:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"641:16:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":56230,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56211,"src":"660:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56240,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":56233,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56195,"src":"672:6:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56235,"indexExpression":{"id":56234,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56215,"src":"679:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:9:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":56232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"666:5:95","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":56231,"name":"uint8","nodeType":"ElementaryTypeName","src":"666:5:95","typeDescriptions":{}}},"id":56236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:16:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":56237,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56211,"src":"685:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"691:6:95","memberName":"length","nodeType":"MemberAccess","src":"685:12:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"666:31:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"660:38:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"641:57:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56242,"nodeType":"ExpressionStatement","src":"641:57:95"},{"expression":{"id":56261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56243,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56201,"src":"712:9:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56249,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56215,"src":"722:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":56245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:95","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"722:5:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":56247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:95","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"722:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"712:20:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":56250,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56211,"src":"735:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56260,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":56253,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56195,"src":"747:6:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56255,"indexExpression":{"id":56254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56215,"src":"754:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"747:9:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":56252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"741:5:95","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":56251,"name":"uint8","nodeType":"ElementaryTypeName","src":"741:5:95","typeDescriptions":{}}},"id":56256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:16:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":56257,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56211,"src":"760:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"766:6:95","memberName":"length","nodeType":"MemberAccess","src":"760:12:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"741:31:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"735:38:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"712:61:95","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56262,"nodeType":"ExpressionStatement","src":"712:61:95"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56218,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56215,"src":"603:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56219,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56195,"src":"607:6:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:6:95","memberName":"length","nodeType":"MemberAccess","src":"607:13:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:17:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56264,"initializationExpression":{"assignments":[56215],"declarations":[{"constant":false,"id":56215,"mutability":"mutable","name":"i","nameLocation":"596:1:95","nodeType":"VariableDeclaration","scope":56264,"src":"588:9:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56214,"name":"uint256","nodeType":"ElementaryTypeName","src":"588:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56217,"initialValue":{"hexValue":"30","id":56216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:1:95","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"588:13:95"},"loopExpression":{"expression":{"id":56223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"622:3:95","subExpression":{"id":56222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56215,"src":"622:1:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56224,"nodeType":"ExpressionStatement","src":"622:3:95"},"nodeType":"ForStatement","src":"583:201:95"},{"expression":{"arguments":[{"arguments":[{"hexValue":"3078","id":56269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"825:4:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},"value":"0x"},{"id":56270,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56201,"src":"831:9:95","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":56267,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"808:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"812:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"808:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"808:33:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"801:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":56265,"name":"string","nodeType":"ElementaryTypeName","src":"801:6:95","typeDescriptions":{}}},"id":56272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:41:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":56199,"id":56273,"nodeType":"Return","src":"794:48:95"}]},"implemented":true,"kind":"function","modifiers":[],"name":"iToHex","nameLocation":"337:6:95","parameters":{"id":56196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56195,"mutability":"mutable","name":"buffer","nameLocation":"357:6:95","nodeType":"VariableDeclaration","scope":56275,"src":"344:19:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56194,"name":"bytes","nodeType":"ElementaryTypeName","src":"344:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"343:21:95"},"returnParameters":{"id":56199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56275,"src":"388:13:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56197,"name":"string","nodeType":"ElementaryTypeName","src":"388:6:95","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"387:15:95"},"scope":56276,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":56188,"name":"Test","nameLocations":["273:4:95"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"273:4:95"},"id":56189,"nodeType":"InheritanceSpecifier","src":"273:4:95"}],"canonicalName":"FvmAddressHelperTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56276,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"FvmAddressHelperTest","nameLocation":"249:20:95","scope":56277,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":95} \ No newline at end of file diff --git a/contracts/.out/GatewayActorHandler.sol/GatewayActorHandler.json b/contracts/.out/GatewayActorHandler.sol/GatewayActorHandler.json new file mode 100644 index 000000000..3999629af --- /dev/null +++ b/contracts/.out/GatewayActorHandler.sol/GatewayActorHandler.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_gw","type":"address","internalType":"contract GatewayDiamond"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"register","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608034610100576001600160401b0390601f61048838819003918201601f1916830191848311848410176100de5780849260209460405283398101031261010057516001600160a01b0381169081900361010057600f80546001600160a01b031916919091179055737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15610100576000809260446040518095819363c88a5e6d60e01b83523060048401526a6b31bffa03c1c535c0000060248401525af180156100f4576100ce575b60405161038290816101068239f35b81116100de5760405238806100bf565b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c8063a694fc3a146100bc5763f207564e1461003d575061000e565b346100aa5760203660031901126100aa578061005a60043561016d565b600f546001600160a01b031690813b156100b8578291602483926040519485938492637903ab2760e11b845260048401525af180156100ad5761009a5750f35b6100a390610121565b6100aa5780f35b80fd5b6040513d84823e3d90fd5b5050fd5b50346100aa5760203660031901126100aa576100d960043561016d565b600f5482906001600160a01b0316803b1561011d576004604051809481936316989f6f60e21b83525af180156100ad57610111575080f35b61011a90610121565b80f35b5080fd5b67ffffffffffffffff811161013557604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761013557604052565b61017690610265565b60408051929067ffffffffffffffff84820181811186821017610135578252600c85526020906b109bdd5b990814995cdd5b1d60a21b82870152825182810190632d839cb360e21b8252846024820152875180606483015260005b8181106102515750601f96979850918161020f60848286600083819982990101528d60448301528b199b8c910116810103606481018452018261014b565b51906a636f6e736f6c652e6c6f675afa503d1561024b573d90811161013557610243826000945195601f840116018561014b565b83523d92013e565b50505050565b8981018601518382016084015285016101d1565b6801a055690d9db80000906000908183821180156103325760038311158061033a575b610332576003198310158061031f575b61030f571561030857506801a055690d9db7ffff1981019081116102f4576801a055690d9db8000190069182156102ee575060001982019182116102da575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b50501982039182116102da575090565b5082196801a055690d9db8000111610298565b505091505090565b50826801a055690d9db800011161028856fea264697066735822122000425588355b7cd841dd032e7ce2254841132d496de72eddb3f1984163e4885e64736f6c63430008130033","sourceMap":"557:832:102:-:0;;;;-1:-1:-1;;;;;557:832:102;;;;;;;;;;-1:-1:-1;;557:832:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;557:832:102;;;;;;;;778:48;557:832;;-1:-1:-1;;;;;;557:832:102;;;;;;;;;20219:17:6;;;;;-1:-1:-1;557:832:102;;17996:59:6;557:832:102;;17996:59:6;;;;;;;20219:17;;850:4:102;20219:17:6;;;17996:59;537:17:102;17996:59:6;;;;20219:17;;;;;;;;-1:-1:-1;557:832:102;;;;;;;;;20219:17:6;557:832:102;;;;;;20219:17:6;;;;557:832:102;;;;-1:-1:-1;557:832:102;;20219:17:6;557:832:102;17996:59:6;-1:-1:-1;557:832:102;20219:17:6;557:832:102;;17996:59:6;-1:-1:-1;17996:59:6;;;;;20219:17;-1:-1:-1;557:832:102;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c8063a694fc3a146100bc5763f207564e1461003d575061000e565b346100aa5760203660031901126100aa578061005a60043561016d565b600f546001600160a01b031690813b156100b8578291602483926040519485938492637903ab2760e11b845260048401525af180156100ad5761009a5750f35b6100a390610121565b6100aa5780f35b80fd5b6040513d84823e3d90fd5b5050fd5b50346100aa5760203660031901126100aa576100d960043561016d565b600f5482906001600160a01b0316803b1561011d576004604051809481936316989f6f60e21b83525af180156100ad57610111575080f35b61011a90610121565b80f35b5080fd5b67ffffffffffffffff811161013557604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761013557604052565b61017690610265565b60408051929067ffffffffffffffff84820181811186821017610135578252600c85526020906b109bdd5b990814995cdd5b1d60a21b82870152825182810190632d839cb360e21b8252846024820152875180606483015260005b8181106102515750601f96979850918161020f60848286600083819982990101528d60448301528b199b8c910116810103606481018452018261014b565b51906a636f6e736f6c652e6c6f675afa503d1561024b573d90811161013557610243826000945195601f840116018561014b565b83523d92013e565b50505050565b8981018601518382016084015285016101d1565b6801a055690d9db80000906000908183821180156103325760038311158061033a575b610332576003198310158061031f575b61030f571561030857506801a055690d9db7ffff1981019081116102f4576801a055690d9db8000190069182156102ee575060001982019182116102da575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b50501982039182116102da575090565b5082196801a055690d9db8000111610298565b505091505090565b50826801a055690d9db800011161028856fea264697066735822122000425588355b7cd841dd032e7ce2254841132d496de72eddb3f1984163e4885e64736f6c63430008130033","sourceMap":"557:832:102:-:0;;;;;;;;;-1:-1:-1;557:832:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;557:832:102;;;;;941:49;557:832;;941:49;:::i;:::-;1000:12;721:8;-1:-1:-1;;;;;721:8:102;;1000:29;;;;;557:832;;721:8;557:832;;;;721:8;;;;;;;;1000:29;;557:832;1000:29;;721:8;1000:29;;;;;;;;557:832;;1000:29;;;;:::i;:::-;721:8;;1000:29;557:832;721:8;557:832;;1000:29;557:832;;721:8;557:832;;721:8;;;;1000:29;557:832;;;;;;;;;;-1:-1:-1;;557:832:102;;;;1099:49;557:832;;1099:49;:::i;:::-;1158:12;721:8;;;-1:-1:-1;;;;;721:8:102;1158:38;;;;;557:832;;;721:8;;;;;;;1158:38;;;;;;;;;;557:832;;;1158:38;;;;:::i;:::-;557:832;;1158:38;557:832;;;721:8;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2680:190:13:-;2798:19;2680:190;2798:19;:::i;:::-;557:832:102;;;;;721:8;;;;;;;;;;;;;;;557:832;;;;;-1:-1:-1;;;557:832:102;;;;;;9924:54:13;;;;;;;;;;;;;679:42;;;;;;;557:832:102;;679:42:13;;;;;;;721:8:102;679:42:13;;;;;;9924:54;557:832:102;679:42:13;;557:832:102;679:42:13;;;;;;;;;;;;721:8:102;;;;;;;;679:42:13;;9924:54;679:42;9924:54;;;;;;;:::i;:::-;9887:92;;679:42;9887:92;;-1:-1:-1;679:42:13;;;;;557:832:102;;;;;;;;;;721:8;;;;;557:832;;;:::i;:::-;;;679:42:13;;;;2680:190::o;679:42::-;;;;;2680:190::o;679:42::-;;;;;;;;;;557:832:102;679:42:13;;;;;;1411:1263;721:8:102;;557:832;;;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;;;557:832:102;;;;;;;;907:78:13;;2422:8;;;2418:24;;-1:-1:-1;;;557:832:102;;;;;;;2456:22:13;2316:352;1411:1263::o;557:832:102:-;-1:-1:-1;;;721:8:102;;;;;;;;2418:24:13;2432:10;;;;:::o;557:832:102:-;-1:-1:-1;;;721:8:102;;;;;;;;2316:352:13;;;;;;1411:1263::o;2138:82::-;557:832:102;;;;;;;;;;2190:30:13;;:::o;2142:46::-;557:832:102;;;;2166:22:13;2142:46;;2090:38;2114:14;;;;;;:::o;2094:18::-;2104:8;;557:832:102;2104:8:13;2094:18;","linkReferences":{}},"methodIdentifiers":{"register(uint256)":"f207564e","stake(uint256)":"a694fc3a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract GatewayDiamond\",\"name\":\"_gw\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/GatewayActorHandler.sol\":\"GatewayActorHandler\"},\"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/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/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/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/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402\",\"dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP\"]},\"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/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/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\"]},\"test/invariants/handlers/GatewayActorHandler.sol\":{\"keccak256\":\"0x78679a25c28abd723117dda2bff3f3f622721b2eeacf776f2d8eb10db0a32b79\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://86b84b5625131e24ecbe8199aa1a784699a2c501c6ceb115ef8e9e7365ba2b82\",\"dweb:/ipfs/QmQHXGicwt7a62YMjQG2JXbZL2iPuC8LYSqeKa8f88SRFT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract GatewayDiamond","name":"_gw","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"register"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"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":{"test/invariants/handlers/GatewayActorHandler.sol":"GatewayActorHandler"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"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/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/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/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0xe69c89d9d57259c1002ec7106f064c3737facfa927d6821134285c440a27f2fa","urls":["bzz-raw://c13f5fdc611f351e96cb8d435ca122428cc3f708ca7c2b12fe2d7bc155016402","dweb:/ipfs/QmPcqXuLq2UtQ236d9KiNz5tF9ybQwxCYgk4gvGuCuBofP"],"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/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/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"},"test/invariants/handlers/GatewayActorHandler.sol":{"keccak256":"0x78679a25c28abd723117dda2bff3f3f622721b2eeacf776f2d8eb10db0a32b79","urls":["bzz-raw://86b84b5625131e24ecbe8199aa1a784699a2c501c6ceb115ef8e9e7365ba2b82","dweb:/ipfs/QmQHXGicwt7a62YMjQG2JXbZL2iPuC8LYSqeKa8f88SRFT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/GatewayActorHandler.sol","id":58005,"exportedSymbols":{"BottomUpRouterFacet":[39601],"CommonBase":[3777],"ETH_SUPPLY":[57896],"EnumerableSet":[35815],"GatewayActorHandler":[58004],"GatewayDiamond":[36170],"GatewayManagerFacet":[38870],"IMulticall3":[30545],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:1344:102","nodes":[{"id":57881,"nodeType":"PragmaDirective","src":"46:23:102","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57882,"nodeType":"ImportDirective","src":"71:32:102","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57883,"nodeType":"ImportDirective","src":"104:33:102","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57885,"nodeType":"ImportDirective","src":"138:46:102","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57884,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57887,"nodeType":"ImportDirective","src":"185:63:102","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../../../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":57886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"193:14:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57889,"nodeType":"ImportDirective","src":"249:88:102","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../../../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":57888,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"257:19:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57891,"nodeType":"ImportDirective","src":"338:81:102","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../../../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":57890,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"346:19:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57893,"nodeType":"ImportDirective","src":"420:85:102","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":58005,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57892,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"428:13:102","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57896,"nodeType":"VariableDeclaration","src":"507:47:102","nodes":[],"constant":true,"mutability":"constant","name":"ETH_SUPPLY","nameLocation":"524:10:102","scope":58005,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57894,"name":"uint256","nodeType":"ElementaryTypeName","src":"507:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132395f3539305f303030","id":57895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"537:17:102","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_129590000000000000000000000_by_1","typeString":"int_const 129590000000000000000000000"},"value":"129_590_000"},"visibility":"internal"},{"id":58004,"nodeType":"ContractDefinition","src":"557:832:102","nodes":[{"id":57905,"nodeType":"VariableDeclaration","src":"627:32:102","nodes":[],"constant":false,"mutability":"mutable","name":"managerFacet","nameLocation":"647:12:102","scope":58004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":57904,"nodeType":"UserDefinedTypeName","pathNode":{"id":57903,"name":"GatewayManagerFacet","nameLocations":["627:19:102"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"627:19:102"},"referencedDeclaration":38870,"src":"627:19:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":57908,"nodeType":"VariableDeclaration","src":"666:63:102","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"691:27:102","scope":58004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57906,"name":"uint256","nodeType":"ElementaryTypeName","src":"666:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"721:8:102","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"visibility":"private"},{"id":57932,"nodeType":"FunctionDefinition","src":"736:139:102","nodes":[],"body":{"id":57931,"nodeType":"Block","src":"768:107:102","nodes":[],"statements":[{"expression":{"id":57921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57914,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57905,"src":"778:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57918,"name":"_gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57911,"src":"821:3:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":57917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"813:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57916,"name":"address","nodeType":"ElementaryTypeName","src":"813:7:102","typeDescriptions":{}}},"id":57919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:12:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57915,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"793:19:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":57920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"793:33:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"778:48:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":57922,"nodeType":"ExpressionStatement","src":"778:48:102"},{"expression":{"arguments":[{"arguments":[{"id":57926,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"850:4:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayActorHandler_$58004","typeString":"contract GatewayActorHandler"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayActorHandler_$58004","typeString":"contract GatewayActorHandler"}],"id":57925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"842:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57924,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:102","typeDescriptions":{}}},"id":57927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:13:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57928,"name":"ETH_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57896,"src":"857:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57923,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[7789,7806,7929],"referencedDeclaration":7789,"src":"837:4:102","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"837:31:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57930,"nodeType":"ExpressionStatement","src":"837:31:102"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57911,"mutability":"mutable","name":"_gw","nameLocation":"763:3:102","nodeType":"VariableDeclaration","scope":57932,"src":"748:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":57910,"nodeType":"UserDefinedTypeName","pathNode":{"id":57909,"name":"GatewayDiamond","nameLocations":["748:14:102"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"748:14:102"},"referencedDeclaration":36170,"src":"748:14:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"747:20:102"},"returnParameters":{"id":57913,"nodeType":"ParameterList","parameters":[],"src":"768:0:102"},"scope":58004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57954,"nodeType":"FunctionDefinition","src":"881:155:102","nodes":[],"body":{"id":57953,"nodeType":"Block","src":"922:114:102","nodes":[],"statements":[{"expression":{"id":57945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57937,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57934,"src":"932:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57939,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57934,"src":"947:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"955:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"958:1:102","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57942,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57908,"src":"962:27:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"958:31:102","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":57938,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"941:5:102","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:49:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"932:58:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57946,"nodeType":"ExpressionStatement","src":"932:58:102"},{"expression":{"arguments":[{"id":57950,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57934,"src":"1022:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57947,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57905,"src":"1000:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":57949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1013:8:102","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"1000:21:102","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":57951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1000:29:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57952,"nodeType":"ExpressionStatement","src":"1000:29:102"}]},"functionSelector":"f207564e","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"890:8:102","parameters":{"id":57935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57934,"mutability":"mutable","name":"amount","nameLocation":"907:6:102","nodeType":"VariableDeclaration","scope":57954,"src":"899:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57933,"name":"uint256","nodeType":"ElementaryTypeName","src":"899:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"898:16:102"},"returnParameters":{"id":57936,"nodeType":"ParameterList","parameters":[],"src":"922:0:102"},"scope":58004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57977,"nodeType":"FunctionDefinition","src":"1042:161:102","nodes":[],"body":{"id":57976,"nodeType":"Block","src":"1080:123:102","nodes":[],"statements":[{"expression":{"id":57967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57959,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57956,"src":"1090:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57961,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57956,"src":"1105:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1113:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1116:1:102","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57964,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57908,"src":"1120:27:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1116:31:102","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":57960,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"1099:5:102","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:49:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1090:58:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57968,"nodeType":"ExpressionStatement","src":"1090:58:102"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":57969,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57905,"src":"1158:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":57971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1171:8:102","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"1158:21:102","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":57973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57972,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57956,"src":"1187:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1158:36:102","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":57974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1158:38:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57975,"nodeType":"ExpressionStatement","src":"1158:38:102"}]},"functionSelector":"a694fc3a","implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"1051:5:102","parameters":{"id":57957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57956,"mutability":"mutable","name":"amount","nameLocation":"1065:6:102","nodeType":"VariableDeclaration","scope":57977,"src":"1057:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1057:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1056:16:102"},"returnParameters":{"id":57958,"nodeType":"ParameterList","parameters":[],"src":"1080:0:102"},"scope":58004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57999,"nodeType":"FunctionDefinition","src":"1209:143:102","nodes":[],"body":{"id":57998,"nodeType":"Block","src":"1260:92:102","nodes":[],"statements":[{"assignments":[57985,null],"declarations":[{"constant":false,"id":57985,"mutability":"mutable","name":"s","nameLocation":"1276:1:102","nodeType":"VariableDeclaration","scope":57998,"src":"1271:6:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57984,"name":"bool","nodeType":"ElementaryTypeName","src":"1271:4:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":57992,"initialValue":{"arguments":[{"hexValue":"","id":57990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1306:2:102","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":57986,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57979,"src":"1283:2:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1286:4:102","memberName":"call","nodeType":"MemberAccess","src":"1283:7:102","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":57989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57988,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57981,"src":"1298:6:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1283:22:102","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":57991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1283:26:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1270:39:102"},{"expression":{"arguments":[{"id":57994,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57985,"src":"1327:1:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061792829206661696c6564","id":57995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1330:14:102","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":57993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1319:7:102","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1319:26:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57997,"nodeType":"ExpressionStatement","src":"1319:26:102"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pay","nameLocation":"1218:4:102","parameters":{"id":57982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57979,"mutability":"mutable","name":"to","nameLocation":"1231:2:102","nodeType":"VariableDeclaration","scope":57999,"src":"1223:10:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57978,"name":"address","nodeType":"ElementaryTypeName","src":"1223:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57981,"mutability":"mutable","name":"amount","nameLocation":"1243:6:102","nodeType":"VariableDeclaration","scope":57999,"src":"1235:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57980,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:28:102"},"returnParameters":{"id":57983,"nodeType":"ParameterList","parameters":[],"src":"1260:0:102"},"scope":58004,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":58003,"nodeType":"FunctionDefinition","src":"1358:29:102","nodes":[],"body":{"id":58002,"nodeType":"Block","src":"1385:2:102","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58000,"nodeType":"ParameterList","parameters":[],"src":"1365:2:102"},"returnParameters":{"id":58001,"nodeType":"ParameterList","parameters":[],"src":"1385:0:102"},"scope":58004,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57897,"name":"CommonBase","nameLocations":["589:10:102"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"589:10:102"},"id":57898,"nodeType":"InheritanceSpecifier","src":"589:10:102"},{"baseName":{"id":57899,"name":"StdCheats","nameLocations":["601:9:102"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"601:9:102"},"id":57900,"nodeType":"InheritanceSpecifier","src":"601:9:102"},{"baseName":{"id":57901,"name":"StdUtils","nameLocations":["612:8:102"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"612:8:102"},"id":57902,"nodeType":"InheritanceSpecifier","src":"612:8:102"}],"canonicalName":"GatewayActorHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58004,12691,8180,7501,3777],"name":"GatewayActorHandler","nameLocation":"566:19:102","scope":58005,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":102} \ No newline at end of file diff --git a/contracts/.out/GatewayActorProperties.sol/GatewayActorBasicProperties.json b/contracts/.out/GatewayActorProperties.sol/GatewayActorBasicProperties.json new file mode 100644 index 000000000..c582f9242 --- /dev/null +++ b/contracts/.out/GatewayActorProperties.sol/GatewayActorBasicProperties.json @@ -0,0 +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":"invariant_GA_01_consistent_subnet_number","inputs":[],"outputs":[],"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":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","invariant_GA_01_consistent_subnet_number()":"5efb9974","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\":\"invariant_GA_01_consistent_subnet_number\",\"outputs\":[],\"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\":{\"details\":\"It is suggested that all properties are defined here. To check that a concrete GatewayActor instance holds the properties that target contract should inherit from this contract. This contract must be abstract.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"GatewayActor properties.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"invariant_GA_01_consistent_subnet_number()\":{\"notice\":\"The number of subnets is consistent within GatewayActor mechanisms.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/GatewayActorProperties.sol\":\"GatewayActorBasicProperties\"},\"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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"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/invariants/GatewayActorProperties.sol\":{\"keccak256\":\"0x4a719050af007e7db3f66ed11363aecde6df28f3ee5028caf568dddf705320a6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3d1de2d245dc61498aae568c069c343ff84b159eca56a16325185d20a288897\",\"dweb:/ipfs/QmZVxDGZ9eKxEeStsRwd9R4bqU3cTkfhxmsZKzh9hcX3Np\"]},\"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":"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":"nonpayable","type":"function","name":"invariant_GA_01_consistent_subnet_number"},{"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":{"invariant_GA_01_consistent_subnet_number()":{"notice":"The number of subnets is consistent within GatewayActor mechanisms."}},"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/GatewayActorProperties.sol":"GatewayActorBasicProperties"},"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"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/invariants/GatewayActorProperties.sol":{"keccak256":"0x4a719050af007e7db3f66ed11363aecde6df28f3ee5028caf568dddf705320a6","urls":["bzz-raw://e3d1de2d245dc61498aae568c069c343ff84b159eca56a16325185d20a288897","dweb:/ipfs/QmZVxDGZ9eKxEeStsRwd9R4bqU3cTkfhxmsZKzh9hcX3Np"],"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/GatewayActorProperties.sol","id":57880,"exportedSymbols":{"GatewayActorBasicProperties":[57879],"GatewayGetterFacet":[38317],"IntegrationTestBase":[55675],"StdAssertions":[5210],"TestGatewayActor":[52888]},"nodeType":"SourceUnit","src":"46:880:101","nodes":[{"id":57850,"nodeType":"PragmaDirective","src":"46:23:101","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57852,"nodeType":"ImportDirective","src":"71:58:101","nodes":[],"absolutePath":"lib/forge-std/src/StdAssertions.sol","file":"forge-std/StdAssertions.sol","nameLocation":"-1:-1:-1","scope":57880,"sourceUnit":5211,"symbolAliases":[{"foreign":{"id":57851,"name":"StdAssertions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5210,"src":"79:13:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57854,"nodeType":"ImportDirective","src":"130:76:101","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":57880,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":57853,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"138:18:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57857,"nodeType":"ImportDirective","src":"207:81:101","nodes":[],"absolutePath":"test/IntegrationTestBase.sol","file":"../IntegrationTestBase.sol","nameLocation":"-1:-1:-1","scope":57880,"sourceUnit":55676,"symbolAliases":[{"foreign":{"id":57855,"name":"IntegrationTestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"215:19:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":57856,"name":"TestGatewayActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52888,"src":"236:16:101","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57879,"nodeType":"ContractDefinition","src":"561:364:101","nodes":[{"id":57878,"nodeType":"FunctionDefinition","src":"732:191:101","nodes":[],"body":{"id":57877,"nodeType":"Block","src":"799:124:101","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57867,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"818:8:101","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":57868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"827:12:101","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":37610,"src":"818:21:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":57869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"818:23:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57870,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"843:8:101","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":57871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"852:11:101","memberName":"listSubnets","nodeType":"MemberAccess","referencedDeclaration":37898,"src":"843:20:101","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr_$","typeString":"function () view external returns (struct Subnet memory[] memory)"}},"id":57872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:22:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50044_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"id":57873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"866:6:101","memberName":"length","nodeType":"MemberAccess","src":"843:29:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"746865206e756d626572206f66207375626e657473206973206e6f7420636f6e73697374656e74","id":57874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"874:41:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_9926a330f0115f33dbb090f9fbe81af3c8abcd8c0b1199df2b8bc33db699fd55","typeString":"literal_string \"the number of subnets is not consistent\""},"value":"the number of subnets is not consistent"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_9926a330f0115f33dbb090f9fbe81af3c8abcd8c0b1199df2b8bc33db699fd55","typeString":"literal_string \"the number of subnets is not consistent\""}],"id":57866,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[3911,3936,3949,3965,4007,4049,4091,4128,4165,4202,1749,1774,1804,1829,1888,1913,1943,1968,3441,3476],"referencedDeclaration":1968,"src":"809:8:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":57875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"809:107:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57876,"nodeType":"ExpressionStatement","src":"809:107:101"}]},"documentation":{"id":57863,"nodeType":"StructuredDocumentation","src":"648:79:101","text":"@notice The number of subnets is consistent within GatewayActor mechanisms."},"functionSelector":"5efb9974","implemented":true,"kind":"function","modifiers":[],"name":"invariant_GA_01_consistent_subnet_number","nameLocation":"741:40:101","parameters":{"id":57864,"nodeType":"ParameterList","parameters":[],"src":"781:2:101"},"returnParameters":{"id":57865,"nodeType":"ParameterList","parameters":[],"src":"799:0:101"},"scope":57879,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":57859,"name":"StdAssertions","nameLocations":["610:13:101"],"nodeType":"IdentifierPath","referencedDeclaration":5210,"src":"610:13:101"},"id":57860,"nodeType":"InheritanceSpecifier","src":"610:13:101"},{"baseName":{"id":57861,"name":"TestGatewayActor","nameLocations":["625:16:101"],"nodeType":"IdentifierPath","referencedDeclaration":52888,"src":"625:16:101"},"id":57862,"nodeType":"InheritanceSpecifier","src":"625:16:101"}],"canonicalName":"GatewayActorBasicProperties","contractDependencies":[],"contractKind":"contract","documentation":{"id":57858,"nodeType":"StructuredDocumentation","src":"290:271:101","text":"@title GatewayActor properties.\n @dev It is suggested that all properties are defined here.\n To check that a concrete GatewayActor instance holds the properties that target contract should inherit from this contract.\n This contract must be abstract."},"fullyImplemented":true,"linearizedBaseContracts":[57879,52888,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"GatewayActorBasicProperties","nameLocation":"579:27:101","scope":57880,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":101} \ No newline at end of file diff --git a/contracts/.out/GatewayDiamond.sol/GatewayDiamond.json b/contracts/.out/GatewayDiamond.sol/GatewayDiamond.json new file mode 100644 index 000000000..870d5a965 --- /dev/null +++ b/contracts/.out/GatewayDiamond.sol/GatewayDiamond.json @@ -0,0 +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":[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/contracts/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json b/contracts/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json new file mode 100644 index 000000000..1f3ab9061 --- /dev/null +++ b/contracts/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json @@ -0,0 +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":[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/contracts/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json b/contracts/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json new file mode 100644 index 000000000..d1b7410c1 --- /dev/null +++ b/contracts/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json @@ -0,0 +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":[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/contracts/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json b/contracts/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json new file mode 100644 index 000000000..ce4839a14 --- /dev/null +++ b/contracts/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json @@ -0,0 +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":[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/contracts/.out/IGateway.sol/IGateway.json b/contracts/.out/IGateway.sol/IGateway.json new file mode 100644 index 000000000..155c91873 --- /dev/null +++ b/contracts/.out/IGateway.sol/IGateway.json @@ -0,0 +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":[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/contracts/.out/ISubnetActor.sol/IRelayerRewardDistributor.json b/contracts/.out/ISubnetActor.sol/IRelayerRewardDistributor.json new file mode 100644 index 000000000..948df839d --- /dev/null +++ b/contracts/.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/contracts/.out/IntegrationTestBase.sol/IntegrationTestBase.json b/contracts/.out/IntegrationTestBase.sol/IntegrationTestBase.json new file mode 100644 index 000000000..cfd62ef65 --- /dev/null +++ b/contracts/.out/IntegrationTestBase.sol/IntegrationTestBase.json @@ -0,0 +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":"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$__5af490811563000012e85760009163000012bb575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603d5482603d55808310630000123d575b5060200190603d60005260206000208160031c9160005b83811063000011e9575060071981169003806300001190575b6040516202ccad90816300002f218239f35b9260009360005b81811063000011b057505050015538808080630000117e565b909194602063000011dd600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300001197565b6000805b6008811063000012065750838201556001016300001165565b959060206300001232600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960163000011ed565b603d6000526020600020600780850160031c8201920160031c0190601c8460021b16806300001288575b505b818110630000127a5750630000114e565b600081556001016300001269565b600019908183019182549160200360031b1c169055386300001267565b634e487b7160e01b600052604160045260246000fd5b63000012e091503d806000833e63000012d681836300002e5b565b8101906300002e80565b386300001117565b6040513d6000823e3d90fd5b9260009360005b818403811063000013195750505060031c01553880808063000010ac565b90919460206300001346600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910163000012fb565b6000805b60088110630000136f5750838201556001016300001090565b94906020630000139b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001356565b603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e600284901b601c1680630000140e575b50600780850160031c8201920160031c01905b81811063000014005750630000107d565b6000815560010163000013ef565b60001990816007870160031c8401019182549160200360031b1c1690553863000013dc565b630000144e91503d806000833e63000012d681836300002e5b565b386300001046565b9260009360005b81811063000014795750505060031c0155388080806300000fdd565b909194602063000014a6600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101630000145d565b6000805b6008811063000014cf5750838201556001016300000fc1565b9490602063000014fb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000014b6565b603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d600284901b601c1680630000156e575b50600780850160031c8201920160031c01905b818110630000156057506300000fae565b60008155600101630000154f565b60001990816007870160031c8401019182549160200360031b1c16905538630000153c565b63000015ae91503d806000833e63000012d681836300002e5b565b386300000f77565b60009260005b60071983168303811063000015dc57505060031c01553880806300000f02565b909360206300001608600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000015bc565b6000805b6008811063000016305750838201556001016300000ee7565b94906020630000165c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001617565b60396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3600284901b601c168063000016d0575b506007840160031c81015b6007830160031c8201811063000016c25750506300000ed4565b6000815560010163000016a8565b60001990816007870160031c8401019182549160200360031b1c16905538630000169d565b630000171091503d806000833e63000012d681836300002e5b565b386300000e9d565b60009260005b600719831683038110630000173e57505060031c01553880806300000e28565b90936020630000176a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000171e565b6000805b6008811063000017925750838201556001016300000e0d565b9490602063000017be600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001779565b603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e600284901b601c16806300001832575b506007840160031c81015b6007830160031c8201811063000018245750506300000dfa565b60008155600101630000180a565b60001990816007870160031c8401019182549160200360031b1c1690553863000017ff565b630000187291503d806000833e63000012d681836300002e5b565b386300000dc3565b60009260005b60071983168303811063000018a057505060031c01553880806300000d59565b9093602063000018cc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001880565b6000805b6008811063000018f45750838201556001016300000d3e565b949060206300001920600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000018db565b60386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199600284901b601c16806300001994575b506007840160031c81015b6007830160031c8201811063000019865750506300000d2b565b60008155600101630000196c565b60001990816007870160031c8401019182549160200360031b1c169055386300001961565b63000019d491503d806000833e63000012d681836300002e5b565b386300000cf4565b60009260005b6007198316830381106300001a0257505060031c01553880806300000c7f565b909360206300001a2e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000019e2565b6000805b600881106300001a565750838201556001016300000c64565b949060206300001a82600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001a3d565b60376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae600284901b601c16806300001af6575b506007840160031c81015b6007830160031c820181106300001ae85750506300000c51565b600081556001016300001ace565b60001990816007870160031c8401019182549160200360031b1c169055386300001ac3565b6300001b3691503d806000833e63000012d681836300002e5b565b386300000c1a565b60009260005b6007198316830381106300001b6457505060031c01553880806300000ba5565b909360206300001b90600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001b44565b6000805b600881106300001bb85750838201556001016300000b8a565b949060206300001be4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001b9f565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c16806300001c58575b506007840160031c81015b6007830160031c820181106300001c4a5750506300000b77565b600081556001016300001c30565b60001990816007870160031c8401019182549160200360031b1c169055386300001c25565b6300001c9891503d806000833e63000012d681836300002e5b565b386300000b40565b60009260005b6007198316830381106300001cc657505060031c01553880806300000ad6565b909360206300001cf2600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001ca6565b6000805b600881106300001d1a5750838201556001016300000abb565b949060206300001d46600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001d01565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c16806300001dba575b506007840160031c81015b6007830160031c820181106300001dac5750506300000aa8565b600081556001016300001d92565b60001990816007870160031c8401019182549160200360031b1c169055386300001d87565b6300001dfa91503d806000833e63000012d681836300002e5b565b386300000a71565b60009260005b6007198316830381106300001e2857505060031c01553880806300000a07565b909360206300001e54600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001e08565b6000805b600881106300001e7c57508382015560010163000009ec565b949060206300001ea8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001e63565b602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f600284901b601c16806300001f1c575b506007840160031c81015b6007830160031c820181106300001f0e57505063000009d9565b600081556001016300001ef4565b60001990816007870160031c8401019182549160200360031b1c169055386300001ee9565b6300001f5c91503d806000833e63000012d681836300002e5b565b3863000009a2565b60009260005b6007198316830381106300001f8a57505060031c01553880806300000939565b909360206300001fb6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001f6a565b6000805b600881106300001fde575083820155600101630000091e565b94906020630000200a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001fc5565b602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2600284901b601c1680630000207e575b506007840160031c81015b6007830160031c820181106300002070575050630000090b565b600081556001016300002056565b60001990816007870160031c8401019182549160200360031b1c16905538630000204b565b63000020be91503d806000833e63000012d681836300002e5b565b3863000008d4565b60009260005b60071983168303811063000020ec57505060031c0155388080630000086d565b909360206300002118600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000020cc565b6000805b6008811063000021405750838201556001016300000852565b94906020630000216c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002127565b60296000527fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac600284901b601c168063000021e0575b506007840160031c81015b6007830160031c8201811063000021d2575050630000083f565b6000815560010163000021b8565b60001990816007870160031c8401019182549160200360031b1c1690553863000021ad565b630000222091503d806000833e63000012d681836300002e5b565b386300000808565b60009260005b600719831683038110630000224e57505060031c015538808063000007a1565b90936020630000227a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000222e565b6000805b6008811063000022a25750838201556001016300000786565b9490602063000022ce600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002289565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c16806300002342575b506007840160031c81015b6007830160031c8201811063000023345750506300000773565b60008155600101630000231a565b60001990816007870160031c8401019182549160200360031b1c16905538630000230f565b630000238291503d806000833e63000012d681836300002e5b565b38630000073c565b60009260005b60071983168303811063000023b057505060031c015538808063000006c7565b9093602063000023dc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002390565b6000805b60088110630000240457508382015560010163000006ac565b949060206300002430600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000023eb565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168063000024a4575b506007840160031c81015b6007830160031c8201811063000024965750506300000699565b60008155600101630000247c565b60001990816007870160031c8401019182549160200360031b1c169055386300002471565b63000024e491503d806000833e63000012d681836300002e5b565b386300000662565b60009260005b600719831683038110630000251257505060031c015538808063000005ed565b90936020630000253e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000024f2565b6000805b60088110630000256657508382015560010163000005d2565b949060206300002592600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501630000254d565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c16806300002606575b506007840160031c81015b6007830160031c8201811063000025f857505063000005bf565b6000815560010163000025de565b60001990816007870160031c8401019182549160200360031b1c1690553863000025d3565b630000264691503d806000833e63000012d681836300002e5b565b386300000588565b60009260005b600719831683038110630000267457505060031c01553880806300000513565b9093602063000026a0600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002654565b6000805b6008811063000026c857508382015560010163000004f8565b9490602063000026f4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000026af565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c16806300002768575b506007840160031c81015b6007830160031c82018110630000275a57505063000004e5565b600081556001016300002740565b60001990816007870160031c8401019182549160200360031b1c169055386300002735565b63000027a891503d806000833e63000012d681836300002e5b565b3863000004ae565b60009260005b60071983168303811063000027d657505060031c01553880806300000439565b909360206300002802600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000027b6565b6000805b60088110630000282a575083820155600101630000041e565b949060206300002856600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002811565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c168063000028ca575b506007840160031c81015b6007830160031c8201811063000028bc575050630000040b565b6000815560010163000028a2565b60001990816007870160031c8401019182549160200360031b1c169055386300002897565b630000290a91503d806000833e63000012d681836300002e5b565b3863000003d4565b60009260005b600719831683038110630000293857505060031c0155388080630000035f565b909360206300002964600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002918565b6000805b60088110630000298c5750838201556001016300000344565b9490602063000029b8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002973565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c16806300002a2c575b506007840160031c81015b6007830160031c820181106300002a1e5750506300000331565b600081556001016300002a04565b60001990816007870160031c8401019182549160200360031b1c1690553863000029f9565b6300002a6c91503d806000833e63000012d681836300002e5b565b3863000002fa565b60009260005b6007198316830381106300002a9a57505060031c01553880806300000291565b909360206300002ac6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002a7a565b6000805b600881106300002aee5750838201556001016300000276565b949060206300002b1a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002ad5565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806300002b8e575b506007840160031c81015b6007830160031c820181106300002b805750506300000263565b600081556001016300002b66565b60001990816007870160031c8401019182549160200360031b1c169055386300002b5b565b6300002bce91503d806000833e63000012d681836300002e5b565b38630000022c565b60009260005b6007198316830381106300002bfc57505060031c015538808063000001c5565b909360206300002c28600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002bdc565b6000805b600881106300002c5057508382015560010163000001aa565b949060206300002c7c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002c37565b601c6000526020600020601c8460021b16806300002cd3575b506007840160031c81015b6007830160031c820181106300002cc55750506300000197565b600081556001016300002cab565b60001990816007870160031c8401019182549160200360031b1c169055386300002ca0565b6300002d1391503d806000833e63000012d681836300002e5b565b386300000160565b9260009360005b8181106300002d3e5750505060031c01553880808063000000f7565b90919460206300002d6b600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300002d22565b6000805b600881106300002d9457508382015560010163000000db565b949060206300002dc0600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002d7b565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b16806300002e16575b505b8181106300002e08575063000000c8565b600081556001016300002df7565b600019908183019182549160200360031b1c169055386300002df5565b6300002e4e91503d806000833e63000012d681836300002e5b565b386300000091565b600080fd5b601f909101601f19168101906001600160401b0382119082101763000012a557604052565b9060209081838203126300002e565782516001600160401b03938482116300002e56570181601f820112156300002e5657805193841163000012a5578360051b90604051946300002ed5858401876300002e5b565b855283808601928201019283116300002e56578301905b8282106300002efc575050505090565b81516001600160e01b0319811681036300002e565781529083019083016300002eec56fe60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004959575080631e33429414620047705780631ed7831c14620046ea5780632d49aa1c14620045c857806330dd2c4514620044b257806337bdc99b14620042b55780633e5e3c23146200422f5780633f7286f414620041a95780634d238c8e146200414b5780635c2c2fed1462003b5057806363323eb81462003b1857806366d9a9a01462003a615780637b1837de146200375257806385226c8114620036175780638710555714620035e0578063916a17c61462003529578063951759c914620031975780639b2110801462002a2b5780639c821dc614620022dd578063a0aaa2851462001d98578063a9fb763c1462001cf2578063b5508aa91462001ba3578063ba414fa61462001b7a578063c33dd9d51462001313578063c69a046914620012bf578063d8d52713146200113a578063dd78497414620010f9578063e20c9f711462001059578063ea1c89ed14620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb62004ee2565b620001d562007c74565b90620001fb620001e58262007d12565b92600093620001f48262005f03565b5262005f03565b506040516200020a8162004d91565b6001815260203681830137620002236024359162005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c8262004d91565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d829162004dc9565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004e4e565b81019062007ccb565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b7909391929362004dc9565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e39093919362004dc9565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c62004ecb565b6200042662004ef9565b90600435620080ab565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b5034620003575760031960603682011262000365576200047662004ee2565b6044356002811015620003c657602d54620004ae6000916200049762005fb1565b50603e546001600160a01b0390811691166200838b565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62005222565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662007c66565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb5780620007195750603f546001600160a01b031690620005729062007d12565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062005222565b91848303016024850152620052af565b03925af180156200039d57620006fd575b5090602092915b602d546200063f906200060a906001600160a01b0316620005f662005fb1565b50603e546001600160a01b0316906200838b565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005222565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462007fe6565b1462008026565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004e4e565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b62000709839162004dc9565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b603f549293926001600160a01b031690620007549062007d12565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062005222565b91858303016024860152620052af565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d79062004dc9565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004e4e565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004e4e565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b5034620003575760c036600319011262000357576004356001600160401b0381116200036557620008f99036906004016200534c565b6200090362004ecb565b906200090e62004ef9565b6064356001600160a01b0381168103620006e357608435906001600160a01b0382168203620006e35760a435926001600160a01b0384168403620006e357604051956200095b8762004d75565b6005875260005b60a081106200103f5750604051906200097b8262004dad565b6001600160a01b0316815260208101889052620009976200559b565b6040820152620009a78762005f03565b52620009b38662005f03565b5060405190620009c38262004dad565b60018060a01b0316815286602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062000fca5762000a6e94549181811062000e4b575b81811062000e2b575b81811062000e0b575b81811062000deb575b81811062000dcb575b81811062000dab575b81811062000d8d575b1062000d77575b50038262004e4e565b604082015262000a7e8662005f27565b5262000a8a8562005f27565b506040519062000a9a8262004dad565b60018060a01b0316815285602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062000f555762000b3d94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000b4d8562005f38565b5262000b598462005f38565b506040519062000b698262004dad565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000ee05762000c0c94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000c1c8462005f49565b5262000c288362005f49565b506040519062000c388262004dad565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000e6b5762000cdb94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000ceb8362005f5a565b5262000cf78262005f5a565b50604051916114a4808401908482106001600160401b0383111762000d63579184939162000d2b936200a1798639620070ed565b039082f08015620007de57602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000a65565b602083811b6001600160e01b03191685529093019260010162000a5e565b604083901b6001600160e01b031916845260209093019260010162000a55565b606083901b6001600160e01b031916845260209093019260010162000a4c565b608083901b6001600160e01b031916845260209093019260010162000a43565b60a083901b6001600160e01b031916845260209093019260010162000a3a565b60c083901b6001600160e01b031916845260209093019260010162000a31565b60e083901b6001600160e01b031916845260209093019260010162000a28565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000c82565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000bb3565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000ae4565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a0d565b6020906200104c62006140565b82828b0101520162000962565b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620010d957505050620010bf9250038362004e4e565b620010d560405192828493845283019062005071565b0390f35b85546001600160a01b0316845260019586019588955093019201620010a5565b5034620003575760203660031901126200035757620010d5620011296200111f62004ee2565b620005f662005fb1565b91604095939551958695866200527f565b5034620003575760403660031901126200035757806200115962004ee2565b6024356001600160401b03811162001282576200117b90369060040162005014565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620012ba5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b8578691620012a2575b5050813b156200129e57849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162001286575b5050602d5416803b1562001282576200125c8391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062005195565b03925af180156200035a576200126f5750f35b6200127a9062004dc9565b620003575780f35b5050fd5b620012919062004dc9565b6200128257823862001219565b8480fd5b620012ad9062004dc9565b6200129e578438620011d2565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062001301620012fb36600486016200534c565b620071e3565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b0382111762001b6457604052620013748160040162004f10565b8252620013846024820162004f10565b6020830152620013976044820162004f10565b604083015260648101356001600160401b038111620003c657620013c29060043691840101620052d4565b60608301526084810135906001600160401b038211620003c6576004620013ed9236920101620052d4565b6080820152604051908160a08101106001600160401b0360a08401111762001b645760a082016040526004825260005b6080811062001b4a575060405180610d308101106001600160401b03610d308301111762001b3657610d306200c73b823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001b22576108846200d46b8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec58301111762000d6357611ec56202527c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d8301111762001b0e57610b3d62027141823980610b3d8101039087f0928315620008b85760405190620015198262004dad565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b80600783011062001a9857620015bc94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620015cc8662005f03565b52620015d88562005f03565b5060405190620015e88262004dad565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062001a22576200168b94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200169b8562005f27565b52620016a78462005f27565b5060405190620016b78262004dad565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620019ac576200175a94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200176a8462005f38565b52620017768362005f38565b5060405190620017868262004dad565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001936576200182994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620018398362005f49565b52620018458262005f49565b506040519161111e90818401918483106001600160401b0384111762000d63579162001887859492620018ef946200b61d8739604083526040830190620061b1565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b0360408301511660408201526080620018dd606084015160a0606085015260a0840190620050b0565b920151906080818403910152620050b0565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e0820152019401920184929391620017d0565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001701565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001632565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001563565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b60209062001b5762006140565b828286010152016200141d565b634e487b7160e01b600052604160045260246000fd5b50346200035757806003193601126200035757602062001b996200549c565b6040519015158152f35b5034620003575780600319360112620003575760105462001bc48162004eb3565b9062001bd4604051928362004e4e565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062001c1c5760405180620010d58882620051bc565b604051849188549160019280841c90848116801562001ce7575b878310811462001cd3578284528794939291811562001cb5575060011462001c79575b5062001c6a81600196038262004e4e565b81520197019201919562001c04565b8b8952838920955088905b80821062001c9d575081018301945062001c6a62001c59565b86548383018601529585019587949091019062001c84565b60ff19168584015250151560051b81018301945062001c6a62001c59565b634e487b7160e01b8a52602260045260248afd5b91607f169162001c36565b5034620003575760203660031901126200035757808060405162001d168162004d91565b601c81527f726577617264206d6574686f642063616c6c6564207769746820256400000000602082015260405162001d848162001d6d60208201946309710a9d60e41b865260406024840152606483019062005195565b600435604483015203601f19810183528262004e4e565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c0366003190112620003575762001db662004ee2565b6024908135916001831015620003c65762001dd062004e70565b9162001ddb62004e87565b9262001de662004fd8565b6040519262001df58462004e16565b600084526040519362001e088562004d91565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620022c8579082916202106f833903906000f0988915620022935760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f8082019082821089831117620022b3579082916201fb20833903906000f0801562002293578a168b602f541617602f556040516102308082019082821089831117620022b357908291620249b1833903906000f0801562002293578a168b6031541617603155604051612f0f8082019082821089831117620022b3579082916201cc11833903906000f0801562002293578a168b603254161760325560405161069b8082019082821089831117620022b35790829162024be1833903906000f0801562002293578a168b6030541617603055604051610d308082019082821089831117620022b3579082916200c73b833903906000f0801562002293578a168b60335416176033556040516108848082019082821089831117620022b3579082916200d46b833903906000f093841562002293576200218b97620021c3889485938f8f908160ff9b168091603454161760345562001fcb62006163565b9d8e83602d54166040519062001fe18262004dad565b815260008682015262001ff3620057ab565b6040820152620020038262005f03565b526200200f8162005f03565b5083602f541660405190620020248262004dad565b8152600086820152620020366200559b565b6040820152620020468262005f27565b52620020528162005f27565b50836031541660405190620020678262004dad565b815260008682015262002079620058bc565b6040820152620020898262005f38565b52620020958162005f38565b50836030541660405190620020aa8262004dad565b8152600086820152620020bc620059cd565b6040820152620020cc8262005f49565b52620020d88162005f49565b50836032541660405190620020ed8262004dad565b8152600086820152620020ff62005ade565b60408201526200210f8262005f5a565b526200211b8162005f5a565b50836033541660405190620021308262004dad565b81526000868201526200214262005bef565b6040820152620021528262005fa0565b526200215e8162005fa0565b50604051926200216e8462004dad565b83526000858401526200218062005d00565b604084015262005f6b565b52620021978d62005f6b565b50620021a26200610d565b9a6040519e8f620021b38162004df9565b5216908d015260408c0162005fcd565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a49081860192868410908411176200229f57509184939162002234936200a1798639620070ed565b03906000f08015620022935716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035757806003193601126200035757604051620022fe8162004e32565b6003815260005b6060811062002a11575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d578390620029d2575b62002364915062007d12565b6200236f8762005f03565b526200237b8662005f03565b5060405183815260c8600482015284818381895afa80156200039d57839062002993575b620023ab915062007d12565b620023b68762005f27565b52620023c28662005f27565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002954575b620023f6915062007d12565b620024018862005f38565b526200240d8762005f38565b50604051956200241d8762004e32565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b857869462002915575b506200245a8962005f03565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f578791620028d8575b5084620024988b62005f27565b9116905260405181815287600482015288818781875afa9081156200085f5787916200289b575b5084620024cc8b62005f38565b9116905260405190620024df8262004e32565b600382528b368a8401376040519080825283600483015289828881885afa918215620027d15788926200285c575b50843b15620027905760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af18015620027f857908a9162002844575b505060405182815260c860048201528b818a818a5afa908115620027f8578a9162002807575b50863b15620028035787604051918583521660048201528a898201528981604481838b5af18015620027f857908a91620027dc575b5050604051918252600482015289818881885afa908115620027d157889162002794575b50843b15620027905785906040519283521660048201528786820152868160448183885af180156200085f5790879162002778575b50508082620026166200262a9362005f03565b5282620026238262005f27565b5262005f38565b52604051926200263a8462004d91565b4384528487850152813b156200129e5760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362002758575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762002737575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b8282106200270257888803868a01528880620010d58a8a62005071565b919397509184806200272283979899605f198d82030186528b51620052af565b990192019201889796959492939193620026e5565b6200275190873d8911620003955762000385818362004e4e565b50620026bc565b6200276891935093919362004dc9565b620003f65782918891386200267f565b620027839062004dc9565b6200071557853862002603565b8780fd5b90508981813d8311620027c9575b620027ae818362004e4e565b810103126200279057620027c29062007cb6565b38620025ce565b503d620027a2565b6040513d8a823e3d90fd5b620027e79062004dc9565b620027f4578838620025aa565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d83116200283c575b62002821818362004e4e565b810103126200280357620028359062007cb6565b3862002575565b503d62002815565b6200284f9062004dc9565b620027f45788386200254f565b9091508981813d831162002893575b62002877818362004e4e565b8101031262002790576200288b9062007cb6565b90386200250d565b503d6200286b565b90508881813d8311620028d0575b620028b5818362004e4e565b810103126200085257620028c99062007cb6565b38620024bf565b503d620028a9565b90508881813d83116200290d575b620028f2818362004e4e565b810103126200085257620029069062007cb6565b386200248b565b503d620028e6565b9093508781813d83116200294c575b62002930818362004e4e565b810103126200071557620029449062007cb6565b92386200244e565b503d62002924565b508581813d83116200298b575b6200296d818362004e4e565b81010312620003c65762002985620023f69162007cb6565b620023ea565b503d62002961565b508481813d8311620029ca575b620029ac818362004e4e565b81010312620003f657620029c4620023ab9162007cb6565b6200239f565b503d620029a0565b508481813d831162002a09575b620029eb818362004e4e565b81010312620003f65762002a03620023649162007cb6565b62002358565b503d620029df565b60209062002a1e62005fb1565b8282850101520162002305565b503462000357576040366003190112620003575762002a4962004ee2565b62002a5362004ecb565b603e546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb576200317b575b5062002aad600491836200838b565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262003153575b50602062002b1391604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d57868491829362003114575b5060405163aa5106cb60e01b815292938391829162002b6391906004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002bb7916020918591620030f6575b50604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f15792620030bc575b5003620030455762002c0d62002c149262002c06670de0b6b3a7640000600497146200806b565b1562007fe6565b1562008026565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002c6c938591839162003001575b5060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb5784926200301f575b5062002ca46004929362007d12565b6040519362002cb38562004d91565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002d11938391839162003001575060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002fd3575b5062002d469062007d12565b6040519162002d558362004d91565b825260208201526040519062002d6b8262004e16565b8382526040519262002d7d8462004ddd565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be400848601526040519462002dc18662004d91565b85528560208601526040519262002dd88462004d91565b600194858552875b6020811062002f6c5750505050508262002dfa8262005f03565b5262002e068162005f03565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002f54575b50506042546001600160a01b031690813b156200129e5791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b82821062002f1d5750505050508383809203925af180156200039d5762002f05575b60208260405162002efa8162002eeb85820194868652604083019062007f47565b03601f19810183528262004e4e565b519020604051908152f35b62002f11839162004dc9565b62000365578162002eca565b929597509295509260208062002f3f87936043198c8203018652895162007f47565b970192019201928795938a9795929362002ea8565b62002f5f9062004dc9565b620003c657833862002e57565b60209060405162002f7d8162004d91565b60405162002f8b8162004ddd565b62002f9562007eec565b815262002fa162007eec565b848201528b60408201528b888201528b8682015287878201528b8582015281528a838201528282890101520162002de0565b62002d4691925062002ff9903d8087833e62002ff0818362004e4e565b81019062007e99565b919062002d3a565b6200301891503d8085833e62002ff0818362004e4e565b3862002c4f565b600492506200303d62002ca4913d8088833e62002ff0818362004e4e565b925062002c95565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620030ed575b81620030db6020938362004e4e565b81010312620006e35751903862002bdf565b3d9150620030cc565b6200310d91503d8087833e62002ff0818362004e4e565b3862002b94565b925050506020813d6020116200314a575b81620031346020938362004e4e565b81010312620006e35751828662002b6362002b3f565b3d915062003125565b62002b13919250620031726020913d8087833e62002ff0818362004e4e565b92915062002ae9565b600491936200318e62002aad9262004dc9565b93915062002a9e565b50346200035757602090816003193601126200035757620031b762004ee2565b604051614ffa908181016001600160401b03928282108483111762000d635790829162027c7e8339039084f09182156200039d5760405161154f808201908282108583111762001b0e579082916201fb208339039085f0908115620003eb57859060405192620032278462004dad565b6002845260005b604081106200350a5750604051620032468162004dad565b6001600160a01b03968716815283810188905260405160298054808352600091825282870191907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b8160078401106200348f579284926200335f9992620032fd9554918482821062003470575b82821062003451575b82821062003432575b82821062003413575b828210620033f4575b828210620033d5575b828210620033b8575b5010620033a2575b509050038262004e4e565b60408201526200330d8562005f03565b52620033198462005f03565b5085604051916200332a8362004dad565b16815286888201526200333c6200559b565b60408201526200334c8462005f27565b52620033588362005f27565b5062005ffb565b90604051926114a4808501918583109083111762001b0e57918493916200338c936200a1798639620070ed565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d910138620032f2565b83811b6001600160e01b03191685529093019260010184620032ea565b604084901b6001600160e01b03191685529093019260010184620032e1565b606084901b6001600160e01b03191685529093019260010184620032d8565b608084901b6001600160e01b03191685529093019260010184620032cf565b60a084901b6001600160e01b03191685529093019260010184620032c6565b60c084901b6001600160e01b03191685529093019260010184620032bd565b60e084901b6001600160e01b03191685529093019260010184620032b4565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c9796959493926200328f565b620035189391929362006140565b82828701015201908792916200322e565b503462000357578060031936011262000357576013546200354a8162004eb3565b906200355a604051928362004e4e565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b838310620035a15760405180620010d58782620050f0565b600282600192604051620035b58162004d91565b848060a01b038a54168152620035cd858b0162005e11565b8382015281520196019201919462003589565b5034620003575760403660031901126200035757620010d5620011296200360662004ee2565b6200361062004ecb565b906200838b565b50346200035757806003193601126200035757601154620036388162004eb3565b9062003648604051928362004e4e565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b848310620036905760405180620010d58882620051bc565b604051849188549160019280841c90848116801562003747575b878310811462001cd35782845287949392918115620037295750600114620036ed575b50620036de81600196038262004e4e565b81520197019201919562003678565b8b8952838920955088905b808210620037115750810183019450620036de620036cd565b865483830186015295850195879490910190620036f8565b60ff19168584015250151560051b810183019450620036de620036cd565b91607f1691620036aa565b503462000357576003199060403683011262000357576200377262004ee2565b60249283359160018060a01b03620037d9620037a382602d54166200379662005fb1565b5083603e5416906200838b565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005222565b03915afa958615620022935760009662003a2c575b506001860180961162003a17576001890180991162003a175786620038168460049362007c66565b9b60405192838092632472942560e01b82525afa9081156200229357600091620039e4575b5015620039ad576200385287603f54169462007d12565b93803b15620006e3576200389d946000938e6040519788958694859363018f44b760e41b8552604060048601526200388e604486018c62005222565b928584030190850152620052af565b03925af190811562002293578a97620039009386936200399b575b50620038d987602d5416620038cc62005fb1565b5088603e5416906200838b565b9c935050989050604054169160405195869485938493845287600485015283019062005222565b03915afa908115620022935760009162003968575b50036200393057506200043093929162000670911462007fe6565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d831162003993575b62003981818362004e4e565b81010312620003575750513862003915565b503d62003975565b620039a69062004dc9565b38620038b8565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003a0f575b620039fd818362004e4e565b8101031262000357575051386200383b565b503d620039f1565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162003a59575b62003a46818362004e4e565b81010312620003575750519438620037ee565b503d62003a3a565b5034620003575780600319360112620003575760125462003a828162004eb3565b9062003a92604051928362004e4e565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b83831062003ad95760405180620010d58782620050f0565b60028260019260405162003aed8162004d91565b848060a01b038a5416815262003b05858b0162005e11565b8382015281520196019201919462003ac1565b50346200035757604036600319011262000357576200043062003b3a62004ecb565b603e546001600160a01b031690600435620080ab565b50346200035757610100366003190112620003575762003b6f62004ee2565b60016024351015620003655762003b8562004e70565b62003b8f62004e87565b9162003b9a62004fd8565b91600360c43510156200129e5760e43561ffff81168103620006e3576040519462003bc58662004e16565b600086526040519562003bd88762004d91565b607b875260208701526040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f08015620022935760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f08015620022935760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f08015620022935760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09485156200229357603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b0391829062003e0b62006163565b602d54604051919b91906001600160a01b031662003e298262004dad565b81526000602082015262003e3c620057ab565b604082015262003e4c8c62005f03565b5262003e588b62005f03565b50602f54604051906001600160a01b031662003e748262004dad565b81526000602082015262003e876200559b565b604082015262003e978c62005f27565b5262003ea38b62005f27565b50603154604051906001600160a01b031662003ebf8262004dad565b81526000602082015262003ed2620058bc565b604082015262003ee28c62005f38565b5262003eee8b62005f38565b50603054604051906001600160a01b031662003f0a8262004dad565b81526000602082015262003f1d620059cd565b604082015262003f2d8c62005f49565b5262003f398b62005f49565b50603254604051906001600160a01b031662003f558262004dad565b81526000602082015262003f6862005ade565b604082015262003f788c62005f5a565b5262003f848b62005f5a565b50603354604051906001600160a01b031662003fa08262004dad565b81526000602082015262003fb362005bef565b604082015262003fc38c62005fa0565b5262003fcf8b62005fa0565b506040519062003fdf8262004dad565b6001600160a01b031681526000602082015262003ffb62005d00565b60408201526200400b8b62005f6b565b52620040178a62005f6b565b50620040226200610d565b986040519b620040328d62004df9565b8c526001600160a01b031660208c01526200405360243560408d0162005fcd565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200409460c43562005ff0565b60c435610140840152610160830152604051916114a490818401928484106001600160401b0385111762001b64578493620040d5936200a1798639620070ed565b03906000f080156200229357602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b50346200035757602036600319011262000357576200416962004ee2565b6200417362007c74565b9062004183620001e58262007d12565b50606462000223604051620041988162004d91565b600181526020368183013762005f03565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b858282106200420f57505050620010bf9250038362004e4e565b85546001600160a01b0316845260019586019588955093019201620041f5565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200429557505050620010bf9250038362004e4e565b85546001600160a01b03168452600195860195889550930192016200427b565b503462000357576020806003193601126200036557604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262004473575b5060016001600160401b0380931601908282116200445d5780603f541690866200432c3362007d12565b92803b1562000365576200435f9382916040518080978194636b2c1eef60e01b83528d60048401526024830190620052af565b0391600435905af1928315620007de57879362004440575b5050604054169360046040518096819382525afa928315620003ca57859362004400575b508116911603620043aa575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004438575b6200441b818362004e4e565b810103126200129e5762004430829162007dd1565b92906200439b565b503d6200440f565b6200444e9192935062004dc9565b62000715578490863862004377565b634e487b7160e01b600052601160045260246000fd5b9091508381813d8311620044aa575b6200448e818362004e4e565b810103126200129e57620044a29062007dd1565b903862004302565b503d62004482565b503462000357576020806003193601126200036557600435916001600160401b03918284116200036557366023850112156200036557836004013590620044f98262004eb3565b9162004509604051938462004e4e565b8083528183019560249687600593841b83010191368311620008525788859101915b838310620045b757505050508384905b8682166003811015620045ad5785511115620045985762004571879185681fffffffffffffffe085871b16880101519062007c66565b91168681146200458557600101906200453b565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b82358152918101918591016200452b565b5034620003575760403660031901126200035757600435620045e962004ecb565b803190620045f662005fb1565b50603e546001600160a01b03929062004612908416836200838b565b50505092905083603f541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f57620046d1575b5080620046699131946200465d62005fb1565b50603e5416906200838b565b5050509390508482039182116200086a570362004697576200043092620046909162007c66565b146200806b565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b95620046e262004669929762004dc9565b95906200464a565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b858282106200475057505050620010bf9250038362004e4e565b85546001600160a01b031684526001958601958895509301920162004736565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c09060043536030112620003575760405190620047b48262004d75565b600435600401356001600160401b0381116200036557620047dd90600436918135010162004f25565b82526004356024810135602084015260448101356040840152620048049060640162004fe9565b6060830152608460043501356001600160401b0381116200036557366023826004350101121562000365576004818135010135620048428162004eb3565b9262004852604051948562004e4e565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b836004350101018510620048b45760206200130188886080820152620048a960a46004350162005061565b60a08201526200623f565b84356001600160401b038111620003c65760606004358401820136036023190112620003c65760405190620048e98262004dad565b6004358401810160248101358352620049059060440162004f10565b60208301526001600160401b036064828660043501010135116200129e57602492602092839262004946903690600435890101606481013501870162005014565b6040820152815201950194905062004878565b905034620003655781600319360112620003655762004a5681620049856001600160401b039362004d91565b6001815260016200499e60209283368183013762005f03565b5260405190620049ae8262004d75565b620049b862005fb1565b825284818301528460408301528460a060609382858201528460808201520152604051620049e68162004e16565b85815260405190620049f88262004d91565b607b82528282015260405162004a0e8162004e16565b8681526040519162004a208362004d75565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b039384916200623f565b168362004ad6620012fb6001600160601b0360a01b938085603e541617603e55808560405416176040558085603f541617603f558085604154161760415580856042541617604255808560435416176043558085604454161760445580856045541617604555808560475416176047558085604654161760465562005ffb565b16908181602c541617602c558181602d541617602d558181602f541617602f5581816031541617603155818160305416176030558181603254161760325581816034541617603455603354161760335562004be962004b3462007c74565b62004b3e62005fb1565b50604051600360621b848201526014815262004bc59062004b5f8162004d91565b62004bb66040519162004b728362004dad565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062005195565b03601f19810188528762004e4e565b6040519562004bd48762004d91565b60048752838701528695620001f48262005f03565b50606462004c0e60405162004bfe8162004d91565b6001815283368183013762005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f5762004d5f575b50846040519262004c6f8462004d91565b438452830152833b156200129e576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b85791869391859362004d3f575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb5762004d1f575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b8162004d3992903d10620003955762000385818362004e4e565b62004ced565b62004d4f91935093919362004dc9565b6200129e57849183913862004cb0565b62004d6c91955062004dc9565b84933862004c5e565b60c081019081106001600160401b0382111762001b6457604052565b604081019081106001600160401b0382111762001b6457604052565b606081019081106001600160401b0382111762001b6457604052565b6001600160401b03811162001b6457604052565b60e081019081106001600160401b0382111762001b6457604052565b61018081019081106001600160401b0382111762001b6457604052565b602081019081106001600160401b0382111762001b6457604052565b608081019081106001600160401b0382111762001b6457604052565b90601f801991011681019081106001600160401b0382111762001b6457604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b03811162001b645760051b60200190565b602435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e3576040519262004f418462004d91565b8362004f4d8262004e9e565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e357833562004f818162004eb3565b9462004f91604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062004fbd57505050500152565b819062004fca8462004f10565b815201910190849062004fad565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b6001600160401b03811162001b6457601f01601f191660200190565b81601f82011215620006e3578035906200502e8262004ff8565b926200503e604051948562004e4e565b82845260208383010111620006e357816000926020809301838601378301015290565b359061ffff82168203620006e357565b90815180825260208080930193019160005b82811062005092575050505090565b83516001600160a01b03168552938101939281019260010162005083565b90815180825260208080930193019160005b828110620050d1575050505090565b83516001600160e01b03191685529381019392810192600101620050c2565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062005126575050505050505090565b9091929394959685806200515e600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620050b0565b99019401940192959493919062005114565b60005b838110620051845750506000910152565b818101518382015260200162005173565b90602091620051b08151809281855285808601910162005170565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620051f15750505050505090565b909192939495848062005211600193603f198682030187528a5162005195565b9801930193019194939290620051e0565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005261575050505090565b83516001600160a01b03168552938101939281019260010162005252565b9195949390926200529b60809460a0855260a085019062005222565b966020840152604083015260608201520152565b9060406020620052d19360ff8151168452015191816020820152019062005195565b90565b81601f82011215620006e357803591620052ee8362004eb3565b92620052fe604051948562004e4e565b808452602092838086019260051b820101928311620006e3578301905b8282106200532a575050505090565b81356001600160e01b031981168103620006e35781529083019083016200531b565b9190918083036101a08112620006e3576040516200536a8162004df9565b80948335906001600160401b038211620006e3576200538b91850162004f25565b81526200539b6020840162004f10565b602082015260408301356001811015620006e357604082015260608301356060820152620053cc6080840162004e9e565b6080820152620053df60a0840162004e9e565b60a0820152620053f260c0840162004fe9565b60c08201526200540560e0840162005061565b60e08201526101008084013590820152610120918284013560009381850b82036200129e57830152610140808501359060038210156200129e57830152604061015f1990910112620003655760405192620054608462004d91565b6101609283820135906002821015620003575750845262005485906101800162004f10565b60208401520152565b51908115158203620006e357565b6000805460081c60ff1615620054b6575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620054d857505090565b819250819060405182602082018381526519985a5b195960d21b604084015260408352620055068362004dad565b6200554260246040518093620055316020830197630667f9d760e41b89525180928585019062005170565b810103600481018452018262004e4e565b51925af1503d1562005592573d906200555b8262004ff8565b916200556b604051938462004e4e565b82523d81602084013e5b6020828051810103126200035757506020620052d191016200548e565b60609062005575565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b8160078201106200573757846200564097549383831062005716575b838310620056f5575b838310620056d4575b838310620056b3575b83831062005692575b83831062005674575b5082821062005657575b501062005642575b509050038362004e4e565b565b6001600160e01b031916815201803862005635565b83811b6001600160e01b031916855290930192600101846200562d565b84901b6001600160e01b031916855290930192600101843862005623565b606085901b6001600160e01b0319168652948101946001909201916200561a565b608085901b6001600160e01b03191686529481019460019092019162005611565b60a085901b6001600160e01b03191686529481019460019092019162005608565b60c085901b6001600160e01b031916865294810194600190920191620055ff565b60e085901b6001600160e01b031916865294810194600190920191620055f6565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055da565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b816007820110620058485784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620057ea565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b816007820110620059595784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620058fb565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005a6a5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005a0c565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005b7b5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005b1d565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005c8c5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005c2e565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005d9d5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d3f565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005e8f5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e31565b80511562005f115760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005f115760400190565b80516002101562005f115760600190565b80516003101562005f115760800190565b80516004101562005f115760a00190565b80516006101562005f115760e00190565b80516007101562005f11576101000190565b80516008101562005f11576101200190565b80516005101562005f115760c00190565b6040519062005fc08262004d91565b6060602083600081520152565b600182101562005fda5752565b634e487b7160e01b600052602160045260246000fd5b6003111562005fda57565b604080516200600a8162004df9565b6200601462005fb1565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be40061014093858588015287516200606f8162004d91565b86815286602082015261016080980152856200608a6200610d565b9880519a620060998c62004e16565b828c5281519b620060aa8d62004d91565b607b8d5260208d015281519b620060c18d62004df9565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b600060206040516200611f8162004d91565b8281520152604051620061328162004d91565b600081526000602082015290565b604051906200614f8262004dad565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b0382111762001b6457604052600782528160005b60e0811062006197575050565b602090620061a462006140565b828285010152016200618a565b908082519081815260208091019281808460051b8301019501936000915b848310620061e05750505050505090565b90919293949584806200622e600193601f198682030187528a51858060a01b03815116825283810151620062148162005ff0565b8483015260408091015191606080928201520190620050b0565b9801930193019194939290620061cf565b906040516117848082018281106001600160401b0382111762001b645782916201746f833903906000f0801562002293576040516116598082018281106001600160401b0382111762001b645782916201b5b8833903906000f0801562002293576040516129c58082018281106001600160401b0382111762001b6457829162018bf3833903906000f09081156200229357604051612a728082018281106001600160401b0382111762001b64578291620149fd833903906000f0801562002293576040516126e78082018281106001600160401b0382111762001b645782916200ff50833903906000f0801562002293576040516122618082018281106001600160401b0382111762001b645782916200dcef833903906000f090811562002293576040516123c68082018281106001600160401b0382111762001b6457829162012637833903906000f09283156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f095861562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09586156200229357604051986101408a018a81106001600160401b0382111762001b645760405260098a5260005b6101208110620070d2575060405190620064358262004dad565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b8060078301106200705d57620064d994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620064e98a62005f03565b52620064f58962005f03565b5060405190620065058262004dad565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b80600783011062006fe857620065a994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620065b98962005f6b565b52620065c58862005f6b565b5060405190620065d58262004dad565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062006f73576200667994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620066898862005f7c565b52620066958762005f7c565b5060405190620066a58262004dad565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b80600783011062006efe576200674994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620067598762005f8e565b52620067658662005f8e565b5060405190620067758262004dad565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b80600783011062006e89576200681994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068298662005f27565b52620068358562005f27565b5060405190620068458262004dad565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b80600783011062006e1457620068e994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068f98562005f38565b52620069058462005f38565b5060405190620069158262004dad565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062006d9f57620069b994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620069c98462005f49565b52620069d58362005f49565b5060405190620069e58262004dad565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006d2a5762006a8994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006a998362005f5a565b5262006aa58262005f5a565b506040519062006ab58262004dad565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006cb55762006b5994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006b698262005fa0565b5262006b758162005fa0565b5060405190611b4d808301918383106001600160401b0384111762001b645762006bae916200862c8539604083526040830190620061b1565b90602081830391015262006bcc845160c0835260c083019062005222565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006c625750505050505060a061ffff8185969701511691015203906000f080156200229357603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006ca4600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062005195565b990194019401929493919062006c17565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b00565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006a30565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006960565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006890565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620067c0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620066f0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006620565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006550565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006480565b808b60208093620070e262006140565b92010152016200641b565b906200710290604083526040830190620061b1565b9060208183039101526200712082516101a080845283019062005222565b9160018060a01b038060208301511660208401526040820151600181101562005fda576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620071b88262005ff0565b8401526101608092015191825192600284101562005fda576101809360209286015201511691015290565b6040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f0801562002293576040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f0908115620022935760405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f080156200229357604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f090811562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09384156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f093841562002293576200734162006163565b9660405190620073518262004dad565b60018060a01b031681526000602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062007bf157620073f594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074058862005f03565b52620074118762005f03565b5060405190620074218262004dad565b60018060a01b031681526000602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062007b7c57620074c594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074d58762005f27565b52620074e18662005f27565b5060405190620074f18262004dad565b60018060a01b031681526000602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062007b07576200759594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620075a58662005f38565b52620075b18562005f38565b5060405190620075c18262004dad565b60018060a01b031681526000602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062007a92576200766594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620076758562005f49565b52620076818462005f49565b5060405190620076918262004dad565b60018060a01b031681526000602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062007a1d576200773594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620077458462005f5a565b52620077518362005f5a565b5060405190620077618262004dad565b60018060a01b031681526000602082015260405180816020602a549283815201602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2926000905b806007830110620079a8576200780594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078158362005fa0565b52620078218262005fa0565b5060405190620078318262004dad565b60018060a01b031681526000602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b8060078301106200793357620078d594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078e58262005f6b565b52620078f18162005f6b565b50604051916114a490818401928484106001600160401b0385111762001b6457849362007924936200a1798639620070ed565b03906000f08015620022935790565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200787c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620077ac565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620076dc565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200760c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200753c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200746c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200739c565b919082018092116200445d57565b6040519062007c838262004d91565b600182528160005b6020908181101562007cb15760209162007ca462005fb1565b9082850101520162007c8b565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062007ce6826200548e565b93601f190112620006e357604080519162007d018362004d91565b602081015183520151602082015290565b6001600160401b039062007d2562005fb1565b5062007db86040918251906001600160601b03199060601b1660208201526014815262007d528162004d91565b62007da983519162007d648362004dad565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062005195565b03601f19810184528362004e4e565b519062007dc58262004d91565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262007e028462004d91565b8362007e0e8262007dd1565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162007e428162004eb3565b9462007e52604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062007e7e57505050500152565b819062007e8b8462007cb6565b815201910190849062007e6e565b90602082820312620006e35781516001600160401b038111620006e357620052d1920162007de6565b9062007edc60209194939460408452604084019062005222565b6001600160a01b03909416910152565b6040519062007efb8262004d91565b8162007f0662005fb1565b8152602062007f1462005fb1565b910152565b620052d191602062007f35835160408452604084019062005222565b920151906020818403910152620052af565b906020808351936040845260c062007fd362007f71875160e0604089015261012088019062007f19565b62007f8e8589015191603f1992838a83030160608b015262007f19565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262005195565b9501516101008501520151151591015290565b1562007fee57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b156200802e57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b156200807357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562008381579088949392916200836a575b50620081088591846200838b565b9b93969298919a90508554168551938480926394074b0360e01b82525afa9182156200836057839262008340575b5073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a2646970667358221220367904925186bc0989a2e482f97bd46dc603a27b352531a5159e47b4a9099ab964736f6c63430008130033","sourceMap":"8721:26883:91:-:0;;;;;;;1594:4:2;8721:26883:91;;;;1594:4:2;8721:26883:91;;;1594:4:2;8721:26883:91;3201:4:5;8721:26883:91;;;3201:4:5;8721:26883:91;;;;4355:55;;8721:26883;3201:4:5;4355:55:91;;8721:26883;;;;;;;;;;;1594:4:2;4355:15:91;8721:26883;4355:15;;:55;;;;;;;1594:4:2;4355:55:91;;;-1:-1:-1;;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;4324:86;8721:26883;;4324:86;8721:26883;;;;;;-1:-1:-1;8721:26883:91;;;;4324:86;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;;;;;4457:53;;8721:26883;3201:4:5;4457:53:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;1594:4:2;4355:15:91;8721:26883;4355:15;;4457:53;;;;;;;1594:4:2;4457:53:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;4420:90;8721:26883;;4420:90;8721:26883;;;;;;;;;;;4420:90;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;4546:51:91;;8721:26883;3201:4:5;4546:51:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;4546:51;;;;;;;1594:4:2;4546:51:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;4520:77;8721:26883;;4520:77;8721:26883;;;;;;;;;;;4520:77;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;4633:53:91;;8721:26883;3201:4:5;4633:53:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;4633:53;;;;;;;1594:4:2;4633:53:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;4607:79;8721:26883;;4607:79;8721:26883;;;;;;;;;;;4607:79;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7019:58:91;;8721:26883;3201:4:5;7019:58:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7019:58;;;;;;;1594:4:2;7019:58:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7108:59:91;;8721:26883;3201:4:5;7108:59:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7108:59;;;;;;;1594:4:2;7108:59:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7087:80;8721:26883;;7087:80;8721:26883;;;;;;;;;;;7087:80;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7197:57:91;;8721:26883;3201:4:5;7197:57:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7197:57;;;;;;;1594:4:2;7197:57:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7177:77;8721:26883;;7177:77;8721:26883;;;;;;;;;;;7177:77;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7286:58:91;;8721:26883;3201:4:5;7286:58:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7286:58;;;;;;;1594:4:2;7286:58:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7264:80;8721:26883;;7264:80;8721:26883;;;;;;;;;;;7264:80;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7380:65:91;;8721:26883;3201:4:5;7380:65:91;;8721:26883;4520:77;8721:26883;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7380:65;;;;;;;1594:4:2;7380:65:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7354:91;8721:26883;;7354:91;8721:26883;;;;;;;;;;;7354:91;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7482:51:91;;8721:26883;3201:4:5;7482:51:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7482:51;;;;;;;1594:4:2;7482:51:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7455:78;8721:26883;;7455:78;8721:26883;;;;;;;;;;;7455:78;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7563:51:91;;8721:26883;3201:4:5;7563:51:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7563:51;;;;;;;1594:4:2;7563:51:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7543:71;8721:26883;;7543:71;8721:26883;;;;;;;;;;;7543:71;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;7644:53:91;;8721:26883;3201:4:5;7644:53:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;7644:53;;;;;;;1594:4:2;7644:53:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;7624:73;8721:26883;;7624:73;8721:26883;;;;;;;;;;;7624:73;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;5541:54:91;;8721:26883;3201:4:5;5541:54:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;5541:54;;;;;;;1594:4:2;5541:54:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;5509:86;8721:26883;;5509:86;8721:26883;;;;;;;;;;;5509:86;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;5637:54:91;;8721:26883;3201:4:5;5637:54:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;5637:54;;;;;;;1594:4:2;5637:54:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;5605:86;8721:26883;;5605:86;8721:26883;;;;;;;;;;;5605:86;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;5735:56:91;;8721:26883;3201:4:5;5735:56:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;5735:56;;;;;;;1594:4:2;5735:56:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;5701:90;8721:26883;;5701:90;8721:26883;;;;;;;;;;;5701:90;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;5834:55:91;;8721:26883;3201:4:5;5834:55:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;5834:55;;;;;;;1594:4:2;5834:55:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;5801:88;8721:26883;;5801:88;8721:26883;;;;;;;;;;;5801:88;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;5920:54:91;;8721:26883;3201:4:5;5920:54:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;5920:54;;;;;;;1594:4:2;5920:54:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;5900:74;8721:26883;;5900:74;8721:26883;;;;;;;;;;;5900:74;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;6005:55:91;;8721:26883;3201:4:5;6005:55:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;6005:55;;;;;;;1594:4:2;6005:55:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;5984:76;8721:26883;;5984:76;8721:26883;;;;;;;;;;;5984:76;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;6093:57:91;;8721:26883;3201:4:5;6093:57:91;;8721:26883;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;4355:15;6093:57;;;;;;;1594:4:2;6093:57:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;6070:80;8721:26883;;6070:80;8721:26883;;;;;;;;;;;6070:80;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;6180:51:91;;8721:26883;3201:4:5;6180:51:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;;;8721:26883:91;;;4355:15;6180:51;;;;;;;1594:4:2;6180:51:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;6160:71;8721:26883;;6160:71;8721:26883;;;;;;;;;;;6160:71;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;-1:-1:-1;;8721:26883:91;;-1:-1:-1;;;6260:53:91;;8721:26883;3201:4:5;6260:53:91;;8721:26883;;;;;;-1:-1:-1;;;8721:26883:91;;;;;-1:-1:-1;;;;8721:26883:91;;;4355:15;6260:53;;;;;;;1594:4:2;6260:53:91;;;8721:26883;-1:-1:-1;8721:26883:91;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;6241:72;8721:26883;;6241:72;8721:26883;;;;;;;;;;;6241:72;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;1594:4:2;8721:26883:91;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6241:72;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;3201:4:5;8721:26883:91;;1594:4:2;8721:26883:91;6260:53;;;;;;1594:4:2;6260:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;8721:26883;;;1594:4:2;8721:26883:91;;;;;;;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:71;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:51;;;;;;1594:4:2;6180:51:91;;;;;;:::i;:::-;;;;8721:26883;;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6070:80;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:57;;;;;;1594:4:2;6093:57:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:76;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:55;;;;;;1594:4:2;6005:55:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:74;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5920:54;;;;;;1594:4:2;5920:54:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:88;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:55;;;;;;1594:4:2;5834:55:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5701:90;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:56;;;;;;1594:4:2;5735:56:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:86;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5637:54;;;;;;1594:4:2;5637:54:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5509:86;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:54;;;;;;1594:4:2;5541:54:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:73;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7644:53;;;;;;1594:4:2;7644:53:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7543:71;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7563:51;;;;;;1594:4:2;7563:51:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7455:78;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7482:51;;;;;;1594:4:2;7482:51:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7354:91;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:65;;;;;;1594:4:2;7380:65:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:80;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:58;;;;;;1594:4:2;7286:58:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7177:77;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7197:57;;;;;;1594:4:2;7197:57:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:80;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7108:59;;;;;;1594:4:2;7108:59:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7019:58;;;;;;1594:4:2;7019:58:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:79;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:53;;;;;;1594:4:2;4633:53:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4520:77;1594:4:2;8721:26883:91;;;;;;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4546:51;;;;;;1594:4:2;4546:51:91;;;;;;:::i;:::-;;;;8721:26883;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4420:90;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;4420:90;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:53;;;;;;1594:4:2;4457:53:91;;;;;;:::i;:::-;;;;8721:26883;;1594:4:2;8721:26883:91;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;;;;1594:4:2;8721:26883:91;;;;;;;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:86;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8721:26883:91;;1594:4:2;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;4355:55;;;;;;1594:4:2;4355:55:91;;;;;;:::i;:::-;;;;8721:26883;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8721:26883: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":"0x60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004959575080631e33429414620047705780631ed7831c14620046ea5780632d49aa1c14620045c857806330dd2c4514620044b257806337bdc99b14620042b55780633e5e3c23146200422f5780633f7286f414620041a95780634d238c8e146200414b5780635c2c2fed1462003b5057806363323eb81462003b1857806366d9a9a01462003a615780637b1837de146200375257806385226c8114620036175780638710555714620035e0578063916a17c61462003529578063951759c914620031975780639b2110801462002a2b5780639c821dc614620022dd578063a0aaa2851462001d98578063a9fb763c1462001cf2578063b5508aa91462001ba3578063ba414fa61462001b7a578063c33dd9d51462001313578063c69a046914620012bf578063d8d52713146200113a578063dd78497414620010f9578063e20c9f711462001059578063ea1c89ed14620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb62004ee2565b620001d562007c74565b90620001fb620001e58262007d12565b92600093620001f48262005f03565b5262005f03565b506040516200020a8162004d91565b6001815260203681830137620002236024359162005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c8262004d91565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d829162004dc9565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004e4e565b81019062007ccb565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b7909391929362004dc9565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e39093919362004dc9565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c62004ecb565b6200042662004ef9565b90600435620080ab565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b5034620003575760031960603682011262000365576200047662004ee2565b6044356002811015620003c657602d54620004ae6000916200049762005fb1565b50603e546001600160a01b0390811691166200838b565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62005222565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662007c66565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb5780620007195750603f546001600160a01b031690620005729062007d12565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062005222565b91848303016024850152620052af565b03925af180156200039d57620006fd575b5090602092915b602d546200063f906200060a906001600160a01b0316620005f662005fb1565b50603e546001600160a01b0316906200838b565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005222565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462007fe6565b1462008026565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004e4e565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b62000709839162004dc9565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b603f549293926001600160a01b031690620007549062007d12565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062005222565b91858303016024860152620052af565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d79062004dc9565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004e4e565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004e4e565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b5034620003575760c036600319011262000357576004356001600160401b0381116200036557620008f99036906004016200534c565b6200090362004ecb565b906200090e62004ef9565b6064356001600160a01b0381168103620006e357608435906001600160a01b0382168203620006e35760a435926001600160a01b0384168403620006e357604051956200095b8762004d75565b6005875260005b60a081106200103f5750604051906200097b8262004dad565b6001600160a01b0316815260208101889052620009976200559b565b6040820152620009a78762005f03565b52620009b38662005f03565b5060405190620009c38262004dad565b60018060a01b0316815286602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062000fca5762000a6e94549181811062000e4b575b81811062000e2b575b81811062000e0b575b81811062000deb575b81811062000dcb575b81811062000dab575b81811062000d8d575b1062000d77575b50038262004e4e565b604082015262000a7e8662005f27565b5262000a8a8562005f27565b506040519062000a9a8262004dad565b60018060a01b0316815285602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062000f555762000b3d94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000b4d8562005f38565b5262000b598462005f38565b506040519062000b698262004dad565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000ee05762000c0c94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000c1c8462005f49565b5262000c288362005f49565b506040519062000c388262004dad565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000e6b5762000cdb94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262000ceb8362005f5a565b5262000cf78262005f5a565b50604051916114a4808401908482106001600160401b0383111762000d63579184939162000d2b936200a1798639620070ed565b039082f08015620007de57602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000a65565b602083811b6001600160e01b03191685529093019260010162000a5e565b604083901b6001600160e01b031916845260209093019260010162000a55565b606083901b6001600160e01b031916845260209093019260010162000a4c565b608083901b6001600160e01b031916845260209093019260010162000a43565b60a083901b6001600160e01b031916845260209093019260010162000a3a565b60c083901b6001600160e01b031916845260209093019260010162000a31565b60e083901b6001600160e01b031916845260209093019260010162000a28565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000c82565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000bb3565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000ae4565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a0d565b6020906200104c62006140565b82828b0101520162000962565b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620010d957505050620010bf9250038362004e4e565b620010d560405192828493845283019062005071565b0390f35b85546001600160a01b0316845260019586019588955093019201620010a5565b5034620003575760203660031901126200035757620010d5620011296200111f62004ee2565b620005f662005fb1565b91604095939551958695866200527f565b5034620003575760403660031901126200035757806200115962004ee2565b6024356001600160401b03811162001282576200117b90369060040162005014565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620012ba5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b8578691620012a2575b5050813b156200129e57849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162001286575b5050602d5416803b1562001282576200125c8391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062005195565b03925af180156200035a576200126f5750f35b6200127a9062004dc9565b620003575780f35b5050fd5b620012919062004dc9565b6200128257823862001219565b8480fd5b620012ad9062004dc9565b6200129e578438620011d2565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062001301620012fb36600486016200534c565b620071e3565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b0382111762001b6457604052620013748160040162004f10565b8252620013846024820162004f10565b6020830152620013976044820162004f10565b604083015260648101356001600160401b038111620003c657620013c29060043691840101620052d4565b60608301526084810135906001600160401b038211620003c6576004620013ed9236920101620052d4565b6080820152604051908160a08101106001600160401b0360a08401111762001b645760a082016040526004825260005b6080811062001b4a575060405180610d308101106001600160401b03610d308301111762001b3657610d306200c73b823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001b22576108846200d46b8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec58301111762000d6357611ec56202527c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d8301111762001b0e57610b3d62027141823980610b3d8101039087f0928315620008b85760405190620015198262004dad565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b80600783011062001a9857620015bc94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620015cc8662005f03565b52620015d88562005f03565b5060405190620015e88262004dad565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062001a22576200168b94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200169b8562005f27565b52620016a78462005f27565b5060405190620016b78262004dad565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620019ac576200175a94549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b60408201526200176a8462005f38565b52620017768362005f38565b5060405190620017868262004dad565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001936576200182994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620018398362005f49565b52620018458262005f49565b506040519161111e90818401918483106001600160401b0384111762000d63579162001887859492620018ef946200b61d8739604083526040830190620061b1565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b0360408301511660408201526080620018dd606084015160a0606085015260a0840190620050b0565b920151906080818403910152620050b0565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e0820152019401920184929391620017d0565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001701565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001632565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001563565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b60209062001b5762006140565b828286010152016200141d565b634e487b7160e01b600052604160045260246000fd5b50346200035757806003193601126200035757602062001b996200549c565b6040519015158152f35b5034620003575780600319360112620003575760105462001bc48162004eb3565b9062001bd4604051928362004e4e565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062001c1c5760405180620010d58882620051bc565b604051849188549160019280841c90848116801562001ce7575b878310811462001cd3578284528794939291811562001cb5575060011462001c79575b5062001c6a81600196038262004e4e565b81520197019201919562001c04565b8b8952838920955088905b80821062001c9d575081018301945062001c6a62001c59565b86548383018601529585019587949091019062001c84565b60ff19168584015250151560051b81018301945062001c6a62001c59565b634e487b7160e01b8a52602260045260248afd5b91607f169162001c36565b5034620003575760203660031901126200035757808060405162001d168162004d91565b601c81527f726577617264206d6574686f642063616c6c6564207769746820256400000000602082015260405162001d848162001d6d60208201946309710a9d60e41b865260406024840152606483019062005195565b600435604483015203601f19810183528262004e4e565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c0366003190112620003575762001db662004ee2565b6024908135916001831015620003c65762001dd062004e70565b9162001ddb62004e87565b9262001de662004fd8565b6040519262001df58462004e16565b600084526040519362001e088562004d91565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620022c8579082916202106f833903906000f0988915620022935760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f8082019082821089831117620022b3579082916201fb20833903906000f0801562002293578a168b602f541617602f556040516102308082019082821089831117620022b357908291620249b1833903906000f0801562002293578a168b6031541617603155604051612f0f8082019082821089831117620022b3579082916201cc11833903906000f0801562002293578a168b603254161760325560405161069b8082019082821089831117620022b35790829162024be1833903906000f0801562002293578a168b6030541617603055604051610d308082019082821089831117620022b3579082916200c73b833903906000f0801562002293578a168b60335416176033556040516108848082019082821089831117620022b3579082916200d46b833903906000f093841562002293576200218b97620021c3889485938f8f908160ff9b168091603454161760345562001fcb62006163565b9d8e83602d54166040519062001fe18262004dad565b815260008682015262001ff3620057ab565b6040820152620020038262005f03565b526200200f8162005f03565b5083602f541660405190620020248262004dad565b8152600086820152620020366200559b565b6040820152620020468262005f27565b52620020528162005f27565b50836031541660405190620020678262004dad565b815260008682015262002079620058bc565b6040820152620020898262005f38565b52620020958162005f38565b50836030541660405190620020aa8262004dad565b8152600086820152620020bc620059cd565b6040820152620020cc8262005f49565b52620020d88162005f49565b50836032541660405190620020ed8262004dad565b8152600086820152620020ff62005ade565b60408201526200210f8262005f5a565b526200211b8162005f5a565b50836033541660405190620021308262004dad565b81526000868201526200214262005bef565b6040820152620021528262005fa0565b526200215e8162005fa0565b50604051926200216e8462004dad565b83526000858401526200218062005d00565b604084015262005f6b565b52620021978d62005f6b565b50620021a26200610d565b9a6040519e8f620021b38162004df9565b5216908d015260408c0162005fcd565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a49081860192868410908411176200229f57509184939162002234936200a1798639620070ed565b03906000f08015620022935716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035757806003193601126200035757604051620022fe8162004e32565b6003815260005b6060811062002a11575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d578390620029d2575b62002364915062007d12565b6200236f8762005f03565b526200237b8662005f03565b5060405183815260c8600482015284818381895afa80156200039d57839062002993575b620023ab915062007d12565b620023b68762005f27565b52620023c28662005f27565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002954575b620023f6915062007d12565b620024018862005f38565b526200240d8762005f38565b50604051956200241d8762004e32565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b857869462002915575b506200245a8962005f03565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f578791620028d8575b5084620024988b62005f27565b9116905260405181815287600482015288818781875afa9081156200085f5787916200289b575b5084620024cc8b62005f38565b9116905260405190620024df8262004e32565b600382528b368a8401376040519080825283600483015289828881885afa918215620027d15788926200285c575b50843b15620027905760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af18015620027f857908a9162002844575b505060405182815260c860048201528b818a818a5afa908115620027f8578a9162002807575b50863b15620028035787604051918583521660048201528a898201528981604481838b5af18015620027f857908a91620027dc575b5050604051918252600482015289818881885afa908115620027d157889162002794575b50843b15620027905785906040519283521660048201528786820152868160448183885af180156200085f5790879162002778575b50508082620026166200262a9362005f03565b5282620026238262005f27565b5262005f38565b52604051926200263a8462004d91565b4384528487850152813b156200129e5760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362002758575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762002737575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b8282106200270257888803868a01528880620010d58a8a62005071565b919397509184806200272283979899605f198d82030186528b51620052af565b990192019201889796959492939193620026e5565b6200275190873d8911620003955762000385818362004e4e565b50620026bc565b6200276891935093919362004dc9565b620003f65782918891386200267f565b620027839062004dc9565b6200071557853862002603565b8780fd5b90508981813d8311620027c9575b620027ae818362004e4e565b810103126200279057620027c29062007cb6565b38620025ce565b503d620027a2565b6040513d8a823e3d90fd5b620027e79062004dc9565b620027f4578838620025aa565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d83116200283c575b62002821818362004e4e565b810103126200280357620028359062007cb6565b3862002575565b503d62002815565b6200284f9062004dc9565b620027f45788386200254f565b9091508981813d831162002893575b62002877818362004e4e565b8101031262002790576200288b9062007cb6565b90386200250d565b503d6200286b565b90508881813d8311620028d0575b620028b5818362004e4e565b810103126200085257620028c99062007cb6565b38620024bf565b503d620028a9565b90508881813d83116200290d575b620028f2818362004e4e565b810103126200085257620029069062007cb6565b386200248b565b503d620028e6565b9093508781813d83116200294c575b62002930818362004e4e565b810103126200071557620029449062007cb6565b92386200244e565b503d62002924565b508581813d83116200298b575b6200296d818362004e4e565b81010312620003c65762002985620023f69162007cb6565b620023ea565b503d62002961565b508481813d8311620029ca575b620029ac818362004e4e565b81010312620003f657620029c4620023ab9162007cb6565b6200239f565b503d620029a0565b508481813d831162002a09575b620029eb818362004e4e565b81010312620003f65762002a03620023649162007cb6565b62002358565b503d620029df565b60209062002a1e62005fb1565b8282850101520162002305565b503462000357576040366003190112620003575762002a4962004ee2565b62002a5362004ecb565b603e546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb576200317b575b5062002aad600491836200838b565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262003153575b50602062002b1391604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d57868491829362003114575b5060405163aa5106cb60e01b815292938391829162002b6391906004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002bb7916020918591620030f6575b50604051809381926390ba52cf60e01b8352846004840152602483019062005222565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f15792620030bc575b5003620030455762002c0d62002c149262002c06670de0b6b3a7640000600497146200806b565b1562007fe6565b1562008026565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002c6c938591839162003001575b5060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb5784926200301f575b5062002ca46004929362007d12565b6040519362002cb38562004d91565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de5762002d11938391839162003001575060405163aa5106cb60e01b815294859283926004840162007ec2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002fd3575b5062002d469062007d12565b6040519162002d558362004d91565b825260208201526040519062002d6b8262004e16565b8382526040519262002d7d8462004ddd565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be400848601526040519462002dc18662004d91565b85528560208601526040519262002dd88462004d91565b600194858552875b6020811062002f6c5750505050508262002dfa8262005f03565b5262002e068162005f03565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002f54575b50506042546001600160a01b031690813b156200129e5791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b82821062002f1d5750505050508383809203925af180156200039d5762002f05575b60208260405162002efa8162002eeb85820194868652604083019062007f47565b03601f19810183528262004e4e565b519020604051908152f35b62002f11839162004dc9565b62000365578162002eca565b929597509295509260208062002f3f87936043198c8203018652895162007f47565b970192019201928795938a9795929362002ea8565b62002f5f9062004dc9565b620003c657833862002e57565b60209060405162002f7d8162004d91565b60405162002f8b8162004ddd565b62002f9562007eec565b815262002fa162007eec565b848201528b60408201528b888201528b8682015287878201528b8582015281528a838201528282890101520162002de0565b62002d4691925062002ff9903d8087833e62002ff0818362004e4e565b81019062007e99565b919062002d3a565b6200301891503d8085833e62002ff0818362004e4e565b3862002c4f565b600492506200303d62002ca4913d8088833e62002ff0818362004e4e565b925062002c95565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620030ed575b81620030db6020938362004e4e565b81010312620006e35751903862002bdf565b3d9150620030cc565b6200310d91503d8087833e62002ff0818362004e4e565b3862002b94565b925050506020813d6020116200314a575b81620031346020938362004e4e565b81010312620006e35751828662002b6362002b3f565b3d915062003125565b62002b13919250620031726020913d8087833e62002ff0818362004e4e565b92915062002ae9565b600491936200318e62002aad9262004dc9565b93915062002a9e565b50346200035757602090816003193601126200035757620031b762004ee2565b604051614ffa908181016001600160401b03928282108483111762000d635790829162027c7e8339039084f09182156200039d5760405161154f808201908282108583111762001b0e579082916201fb208339039085f0908115620003eb57859060405192620032278462004dad565b6002845260005b604081106200350a5750604051620032468162004dad565b6001600160a01b03968716815283810188905260405160298054808352600091825282870191907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b8160078401106200348f579284926200335f9992620032fd9554918482821062003470575b82821062003451575b82821062003432575b82821062003413575b828210620033f4575b828210620033d5575b828210620033b8575b5010620033a2575b509050038262004e4e565b60408201526200330d8562005f03565b52620033198462005f03565b5085604051916200332a8362004dad565b16815286888201526200333c6200559b565b60408201526200334c8462005f27565b52620033588362005f27565b5062005ffb565b90604051926114a4808501918583109083111762001b0e57918493916200338c936200a1798639620070ed565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d910138620032f2565b83811b6001600160e01b03191685529093019260010184620032ea565b604084901b6001600160e01b03191685529093019260010184620032e1565b606084901b6001600160e01b03191685529093019260010184620032d8565b608084901b6001600160e01b03191685529093019260010184620032cf565b60a084901b6001600160e01b03191685529093019260010184620032c6565b60c084901b6001600160e01b03191685529093019260010184620032bd565b60e084901b6001600160e01b03191685529093019260010184620032b4565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c9796959493926200328f565b620035189391929362006140565b82828701015201908792916200322e565b503462000357578060031936011262000357576013546200354a8162004eb3565b906200355a604051928362004e4e565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b838310620035a15760405180620010d58782620050f0565b600282600192604051620035b58162004d91565b848060a01b038a54168152620035cd858b0162005e11565b8382015281520196019201919462003589565b5034620003575760403660031901126200035757620010d5620011296200360662004ee2565b6200361062004ecb565b906200838b565b50346200035757806003193601126200035757601154620036388162004eb3565b9062003648604051928362004e4e565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b848310620036905760405180620010d58882620051bc565b604051849188549160019280841c90848116801562003747575b878310811462001cd35782845287949392918115620037295750600114620036ed575b50620036de81600196038262004e4e565b81520197019201919562003678565b8b8952838920955088905b808210620037115750810183019450620036de620036cd565b865483830186015295850195879490910190620036f8565b60ff19168584015250151560051b810183019450620036de620036cd565b91607f1691620036aa565b503462000357576003199060403683011262000357576200377262004ee2565b60249283359160018060a01b03620037d9620037a382602d54166200379662005fb1565b5083603e5416906200838b565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005222565b03915afa958615620022935760009662003a2c575b506001860180961162003a17576001890180991162003a175786620038168460049362007c66565b9b60405192838092632472942560e01b82525afa9081156200229357600091620039e4575b5015620039ad576200385287603f54169462007d12565b93803b15620006e3576200389d946000938e6040519788958694859363018f44b760e41b8552604060048601526200388e604486018c62005222565b928584030190850152620052af565b03925af190811562002293578a97620039009386936200399b575b50620038d987602d5416620038cc62005fb1565b5088603e5416906200838b565b9c935050989050604054169160405195869485938493845287600485015283019062005222565b03915afa908115620022935760009162003968575b50036200393057506200043093929162000670911462007fe6565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d831162003993575b62003981818362004e4e565b81010312620003575750513862003915565b503d62003975565b620039a69062004dc9565b38620038b8565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003a0f575b620039fd818362004e4e565b8101031262000357575051386200383b565b503d620039f1565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162003a59575b62003a46818362004e4e565b81010312620003575750519438620037ee565b503d62003a3a565b5034620003575780600319360112620003575760125462003a828162004eb3565b9062003a92604051928362004e4e565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b83831062003ad95760405180620010d58782620050f0565b60028260019260405162003aed8162004d91565b848060a01b038a5416815262003b05858b0162005e11565b8382015281520196019201919462003ac1565b50346200035757604036600319011262000357576200043062003b3a62004ecb565b603e546001600160a01b031690600435620080ab565b50346200035757610100366003190112620003575762003b6f62004ee2565b60016024351015620003655762003b8562004e70565b62003b8f62004e87565b9162003b9a62004fd8565b91600360c43510156200129e5760e43561ffff81168103620006e3576040519462003bc58662004e16565b600086526040519562003bd88762004d91565b607b875260208701526040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f08015620022935760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f08015620022935760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f08015620022935760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f08015620022935760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09485156200229357603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b0391829062003e0b62006163565b602d54604051919b91906001600160a01b031662003e298262004dad565b81526000602082015262003e3c620057ab565b604082015262003e4c8c62005f03565b5262003e588b62005f03565b50602f54604051906001600160a01b031662003e748262004dad565b81526000602082015262003e876200559b565b604082015262003e978c62005f27565b5262003ea38b62005f27565b50603154604051906001600160a01b031662003ebf8262004dad565b81526000602082015262003ed2620058bc565b604082015262003ee28c62005f38565b5262003eee8b62005f38565b50603054604051906001600160a01b031662003f0a8262004dad565b81526000602082015262003f1d620059cd565b604082015262003f2d8c62005f49565b5262003f398b62005f49565b50603254604051906001600160a01b031662003f558262004dad565b81526000602082015262003f6862005ade565b604082015262003f788c62005f5a565b5262003f848b62005f5a565b50603354604051906001600160a01b031662003fa08262004dad565b81526000602082015262003fb362005bef565b604082015262003fc38c62005fa0565b5262003fcf8b62005fa0565b506040519062003fdf8262004dad565b6001600160a01b031681526000602082015262003ffb62005d00565b60408201526200400b8b62005f6b565b52620040178a62005f6b565b50620040226200610d565b986040519b620040328d62004df9565b8c526001600160a01b031660208c01526200405360243560408d0162005fcd565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200409460c43562005ff0565b60c435610140840152610160830152604051916114a490818401928484106001600160401b0385111762001b64578493620040d5936200a1798639620070ed565b03906000f080156200229357602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b50346200035757602036600319011262000357576200416962004ee2565b6200417362007c74565b9062004183620001e58262007d12565b50606462000223604051620041988162004d91565b600181526020368183013762005f03565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b858282106200420f57505050620010bf9250038362004e4e565b85546001600160a01b0316845260019586019588955093019201620041f5565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200429557505050620010bf9250038362004e4e565b85546001600160a01b03168452600195860195889550930192016200427b565b503462000357576020806003193601126200036557604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262004473575b5060016001600160401b0380931601908282116200445d5780603f541690866200432c3362007d12565b92803b1562000365576200435f9382916040518080978194636b2c1eef60e01b83528d60048401526024830190620052af565b0391600435905af1928315620007de57879362004440575b5050604054169360046040518096819382525afa928315620003ca57859362004400575b508116911603620043aa575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004438575b6200441b818362004e4e565b810103126200129e5762004430829162007dd1565b92906200439b565b503d6200440f565b6200444e9192935062004dc9565b62000715578490863862004377565b634e487b7160e01b600052601160045260246000fd5b9091508381813d8311620044aa575b6200448e818362004e4e565b810103126200129e57620044a29062007dd1565b903862004302565b503d62004482565b503462000357576020806003193601126200036557600435916001600160401b03918284116200036557366023850112156200036557836004013590620044f98262004eb3565b9162004509604051938462004e4e565b8083528183019560249687600593841b83010191368311620008525788859101915b838310620045b757505050508384905b8682166003811015620045ad5785511115620045985762004571879185681fffffffffffffffe085871b16880101519062007c66565b91168681146200458557600101906200453b565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b82358152918101918591016200452b565b5034620003575760403660031901126200035757600435620045e962004ecb565b803190620045f662005fb1565b50603e546001600160a01b03929062004612908416836200838b565b50505092905083603f541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f57620046d1575b5080620046699131946200465d62005fb1565b50603e5416906200838b565b5050509390508482039182116200086a570362004697576200043092620046909162007c66565b146200806b565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b95620046e262004669929762004dc9565b95906200464a565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b858282106200475057505050620010bf9250038362004e4e565b85546001600160a01b031684526001958601958895509301920162004736565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c09060043536030112620003575760405190620047b48262004d75565b600435600401356001600160401b0381116200036557620047dd90600436918135010162004f25565b82526004356024810135602084015260448101356040840152620048049060640162004fe9565b6060830152608460043501356001600160401b0381116200036557366023826004350101121562000365576004818135010135620048428162004eb3565b9262004852604051948562004e4e565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b836004350101018510620048b45760206200130188886080820152620048a960a46004350162005061565b60a08201526200623f565b84356001600160401b038111620003c65760606004358401820136036023190112620003c65760405190620048e98262004dad565b6004358401810160248101358352620049059060440162004f10565b60208301526001600160401b036064828660043501010135116200129e57602492602092839262004946903690600435890101606481013501870162005014565b6040820152815201950194905062004878565b905034620003655781600319360112620003655762004a5681620049856001600160401b039362004d91565b6001815260016200499e60209283368183013762005f03565b5260405190620049ae8262004d75565b620049b862005fb1565b825284818301528460408301528460a060609382858201528460808201520152604051620049e68162004e16565b85815260405190620049f88262004d91565b607b82528282015260405162004a0e8162004e16565b8681526040519162004a208362004d75565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b039384916200623f565b168362004ad6620012fb6001600160601b0360a01b938085603e541617603e55808560405416176040558085603f541617603f558085604154161760415580856042541617604255808560435416176043558085604454161760445580856045541617604555808560475416176047558085604654161760465562005ffb565b16908181602c541617602c558181602d541617602d558181602f541617602f5581816031541617603155818160305416176030558181603254161760325581816034541617603455603354161760335562004be962004b3462007c74565b62004b3e62005fb1565b50604051600360621b848201526014815262004bc59062004b5f8162004d91565b62004bb66040519162004b728362004dad565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062005195565b03601f19810188528762004e4e565b6040519562004bd48762004d91565b60048752838701528695620001f48262005f03565b50606462004c0e60405162004bfe8162004d91565b6001815283368183013762005f03565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f5762004d5f575b50846040519262004c6f8462004d91565b438452830152833b156200129e576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b85791869391859362004d3f575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb5762004d1f575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b8162004d3992903d10620003955762000385818362004e4e565b62004ced565b62004d4f91935093919362004dc9565b6200129e57849183913862004cb0565b62004d6c91955062004dc9565b84933862004c5e565b60c081019081106001600160401b0382111762001b6457604052565b604081019081106001600160401b0382111762001b6457604052565b606081019081106001600160401b0382111762001b6457604052565b6001600160401b03811162001b6457604052565b60e081019081106001600160401b0382111762001b6457604052565b61018081019081106001600160401b0382111762001b6457604052565b602081019081106001600160401b0382111762001b6457604052565b608081019081106001600160401b0382111762001b6457604052565b90601f801991011681019081106001600160401b0382111762001b6457604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b03811162001b645760051b60200190565b602435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e3576040519262004f418462004d91565b8362004f4d8262004e9e565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e357833562004f818162004eb3565b9462004f91604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062004fbd57505050500152565b819062004fca8462004f10565b815201910190849062004fad565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b6001600160401b03811162001b6457601f01601f191660200190565b81601f82011215620006e3578035906200502e8262004ff8565b926200503e604051948562004e4e565b82845260208383010111620006e357816000926020809301838601378301015290565b359061ffff82168203620006e357565b90815180825260208080930193019160005b82811062005092575050505090565b83516001600160a01b03168552938101939281019260010162005083565b90815180825260208080930193019160005b828110620050d1575050505090565b83516001600160e01b03191685529381019392810192600101620050c2565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062005126575050505050505090565b9091929394959685806200515e600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620050b0565b99019401940192959493919062005114565b60005b838110620051845750506000910152565b818101518382015260200162005173565b90602091620051b08151809281855285808601910162005170565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620051f15750505050505090565b909192939495848062005211600193603f198682030187528a5162005195565b9801930193019194939290620051e0565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005261575050505090565b83516001600160a01b03168552938101939281019260010162005252565b9195949390926200529b60809460a0855260a085019062005222565b966020840152604083015260608201520152565b9060406020620052d19360ff8151168452015191816020820152019062005195565b90565b81601f82011215620006e357803591620052ee8362004eb3565b92620052fe604051948562004e4e565b808452602092838086019260051b820101928311620006e3578301905b8282106200532a575050505090565b81356001600160e01b031981168103620006e35781529083019083016200531b565b9190918083036101a08112620006e3576040516200536a8162004df9565b80948335906001600160401b038211620006e3576200538b91850162004f25565b81526200539b6020840162004f10565b602082015260408301356001811015620006e357604082015260608301356060820152620053cc6080840162004e9e565b6080820152620053df60a0840162004e9e565b60a0820152620053f260c0840162004fe9565b60c08201526200540560e0840162005061565b60e08201526101008084013590820152610120918284013560009381850b82036200129e57830152610140808501359060038210156200129e57830152604061015f1990910112620003655760405192620054608462004d91565b6101609283820135906002821015620003575750845262005485906101800162004f10565b60208401520152565b51908115158203620006e357565b6000805460081c60ff1615620054b6575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620054d857505090565b819250819060405182602082018381526519985a5b195960d21b604084015260408352620055068362004dad565b6200554260246040518093620055316020830197630667f9d760e41b89525180928585019062005170565b810103600481018452018262004e4e565b51925af1503d1562005592573d906200555b8262004ff8565b916200556b604051938462004e4e565b82523d81602084013e5b6020828051810103126200035757506020620052d191016200548e565b60609062005575565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b8160078201106200573757846200564097549383831062005716575b838310620056f5575b838310620056d4575b838310620056b3575b83831062005692575b83831062005674575b5082821062005657575b501062005642575b509050038362004e4e565b565b6001600160e01b031916815201803862005635565b83811b6001600160e01b031916855290930192600101846200562d565b84901b6001600160e01b031916855290930192600101843862005623565b606085901b6001600160e01b0319168652948101946001909201916200561a565b608085901b6001600160e01b03191686529481019460019092019162005611565b60a085901b6001600160e01b03191686529481019460019092019162005608565b60c085901b6001600160e01b031916865294810194600190920191620055ff565b60e085901b6001600160e01b031916865294810194600190920191620055f6565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055da565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b816007820110620058485784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620057ea565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b816007820110620059595784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620058fb565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005a6a5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005a0c565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005b7b5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005b1d565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005c8c5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005c2e565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005d9d5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d3f565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005e8f5784620056409754938383106200571657838310620056f557838310620056d457838310620056b3578383106200569257838310620056745750828210620056575750106200564257509050038362004e4e565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e31565b80511562005f115760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005f115760400190565b80516002101562005f115760600190565b80516003101562005f115760800190565b80516004101562005f115760a00190565b80516006101562005f115760e00190565b80516007101562005f11576101000190565b80516008101562005f11576101200190565b80516005101562005f115760c00190565b6040519062005fc08262004d91565b6060602083600081520152565b600182101562005fda5752565b634e487b7160e01b600052602160045260246000fd5b6003111562005fda57565b604080516200600a8162004df9565b6200601462005fb1565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be40061014093858588015287516200606f8162004d91565b86815286602082015261016080980152856200608a6200610d565b9880519a620060998c62004e16565b828c5281519b620060aa8d62004d91565b607b8d5260208d015281519b620060c18d62004df9565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b600060206040516200611f8162004d91565b8281520152604051620061328162004d91565b600081526000602082015290565b604051906200614f8262004dad565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b0382111762001b6457604052600782528160005b60e0811062006197575050565b602090620061a462006140565b828285010152016200618a565b908082519081815260208091019281808460051b8301019501936000915b848310620061e05750505050505090565b90919293949584806200622e600193601f198682030187528a51858060a01b03815116825283810151620062148162005ff0565b8483015260408091015191606080928201520190620050b0565b9801930193019194939290620061cf565b906040516117848082018281106001600160401b0382111762001b645782916201746f833903906000f0801562002293576040516116598082018281106001600160401b0382111762001b645782916201b5b8833903906000f0801562002293576040516129c58082018281106001600160401b0382111762001b6457829162018bf3833903906000f09081156200229357604051612a728082018281106001600160401b0382111762001b64578291620149fd833903906000f0801562002293576040516126e78082018281106001600160401b0382111762001b645782916200ff50833903906000f0801562002293576040516122618082018281106001600160401b0382111762001b645782916200dcef833903906000f090811562002293576040516123c68082018281106001600160401b0382111762001b6457829162012637833903906000f09283156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f095861562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09586156200229357604051986101408a018a81106001600160401b0382111762001b645760405260098a5260005b6101208110620070d2575060405190620064358262004dad565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b8060078301106200705d57620064d994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620064e98a62005f03565b52620064f58962005f03565b5060405190620065058262004dad565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b80600783011062006fe857620065a994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620065b98962005f6b565b52620065c58862005f6b565b5060405190620065d58262004dad565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062006f73576200667994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620066898862005f7c565b52620066958762005f7c565b5060405190620066a58262004dad565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b80600783011062006efe576200674994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620067598762005f8e565b52620067658662005f8e565b5060405190620067758262004dad565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b80600783011062006e89576200681994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068298662005f27565b52620068358562005f27565b5060405190620068458262004dad565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b80600783011062006e1457620068e994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620068f98562005f38565b52620069058462005f38565b5060405190620069158262004dad565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062006d9f57620069b994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620069c98462005f49565b52620069d58362005f49565b5060405190620069e58262004dad565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006d2a5762006a8994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006a998362005f5a565b5262006aa58262005f5a565b506040519062006ab58262004dad565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006cb55762006b5994549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b604082015262006b698262005fa0565b5262006b758162005fa0565b5060405190611b4d808301918383106001600160401b0384111762001b645762006bae916200862c8539604083526040830190620061b1565b90602081830391015262006bcc845160c0835260c083019062005222565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006c625750505050505060a061ffff8185969701511691015203906000f080156200229357603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006ca4600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062005195565b990194019401929493919062006c17565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b00565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006a30565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006960565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006890565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620067c0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620066f0565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006620565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006550565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006480565b808b60208093620070e262006140565b92010152016200641b565b906200710290604083526040830190620061b1565b9060208183039101526200712082516101a080845283019062005222565b9160018060a01b038060208301511660208401526040820151600181101562005fda576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620071b88262005ff0565b8401526101608092015191825192600284101562005fda576101809360209286015201511691015290565b6040516139428082018281106001600160401b0382111762001b645782916202106f833903906000f08015620022935760405161154f8082018281106001600160401b0382111762001b645782916201fb20833903906000f0801562002293576040516102308082018281106001600160401b0382111762001b64578291620249b1833903906000f0908115620022935760405161069b8082018281106001600160401b0382111762001b6457829162024be1833903906000f080156200229357604051612f0f8082018281106001600160401b0382111762001b645782916201cc11833903906000f090811562002293576040516108848082018281106001600160401b0382111762001b645782916200d46b833903906000f09384156200229357604051610d308082018281106001600160401b0382111762001b645782916200c73b833903906000f093841562002293576200734162006163565b9660405190620073518262004dad565b60018060a01b031681526000602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062007bf157620073f594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074058862005f03565b52620074118762005f03565b5060405190620074218262004dad565b60018060a01b031681526000602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062007b7c57620074c594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620074d58762005f27565b52620074e18662005f27565b5060405190620074f18262004dad565b60018060a01b031681526000602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062007b07576200759594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620075a58662005f38565b52620075b18562005f38565b5060405190620075c18262004dad565b60018060a01b031681526000602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062007a92576200766594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620076758562005f49565b52620076818462005f49565b5060405190620076918262004dad565b60018060a01b031681526000602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062007a1d576200773594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620077458462005f5a565b52620077518362005f5a565b5060405190620077618262004dad565b60018060a01b031681526000602082015260405180816020602a549283815201602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2926000905b806007830110620079a8576200780594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078158362005fa0565b52620078218262005fa0565b5060405190620078318262004dad565b60018060a01b031681526000602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b8060078301106200793357620078d594549181811062000e4b5781811062000e2b5781811062000e0b5781811062000deb5781811062000dcb5781811062000dab5781811062000d8d571062000d775750038262004e4e565b6040820152620078e58262005f6b565b52620078f18162005f6b565b50604051916114a490818401928484106001600160401b0385111762001b6457849362007924936200a1798639620070ed565b03906000f08015620022935790565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200787c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620077ac565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620076dc565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200760c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200753c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200746c565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200739c565b919082018092116200445d57565b6040519062007c838262004d91565b600182528160005b6020908181101562007cb15760209162007ca462005fb1565b9082850101520162007c8b565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062007ce6826200548e565b93601f190112620006e357604080519162007d018362004d91565b602081015183520151602082015290565b6001600160401b039062007d2562005fb1565b5062007db86040918251906001600160601b03199060601b1660208201526014815262007d528162004d91565b62007da983519162007d648362004dad565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062005195565b03601f19810184528362004e4e565b519062007dc58262004d91565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262007e028462004d91565b8362007e0e8262007dd1565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162007e428162004eb3565b9462007e52604051968762004e4e565b818652848087019260051b820101928311620006e35784809101915b83831062007e7e57505050500152565b819062007e8b8462007cb6565b815201910190849062007e6e565b90602082820312620006e35781516001600160401b038111620006e357620052d1920162007de6565b9062007edc60209194939460408452604084019062005222565b6001600160a01b03909416910152565b6040519062007efb8262004d91565b8162007f0662005fb1565b8152602062007f1462005fb1565b910152565b620052d191602062007f35835160408452604084019062005222565b920151906020818403910152620052af565b906020808351936040845260c062007fd362007f71875160e0604089015261012088019062007f19565b62007f8e8589015191603f1992838a83030160608b015262007f19565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262005195565b9501516101008501520151151591015290565b1562007fee57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b156200802e57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b156200807357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562008381579088949392916200836a575b50620081088591846200838b565b9b93969298919a90508554168551938480926394074b0360e01b82525afa9182156200836057839262008340575b5073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a2646970667358221220367904925186bc0989a2e482f97bd46dc603a27b352531a5159e47b4a9099ab964736f6c63430008130033","sourceMap":"8721:26883:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;:::i;:::-;28446:19;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;:::-;28475:48;8721:26883;28475:48;;;;:::i;:::-;;;:::i;:::-;;8721:26883;;;;;:::i;:::-;28463:1;8721:26883;;1220:14:3;8721:26883:91;1220:14:3;;;8721:26883:91;28586:19;8721:26883;;28586:19;;:::i;:::-;8721:26883;;28616:21;;;;;;8721:26883;;-1:-1:-1;;;28616:21:91;;-1:-1:-1;;;;;8721:26883:91;;;;28616:21;;8721:26883;;;1220:14:3;;8721:26883:91;28616:21;8721:26883;1220:14:3;8721:26883:91;28616:21;;;;;;;;;;8721:26883;;;;;;;;:::i;:::-;28704:12;8721:26883;;28680:61;1220:14:3;28680:61:91;;8721:26883;28817:38;;;;;8721:26883;;-1:-1:-1;;;28817:38:91;;-1:-1:-1;;;8721:26883:91;28817:38;;8721:26883;28817:38;8721:26883;;;28817:38;;;;;;;;;;;;;;;8721:26883;-1:-1:-1;28865:22:91;540:42:1;8721:26883:91;;-1:-1:-1;;;28865:53:91;;540:42:1;;8721:26883:91;28865:53;;8721:26883;540:42:1;;;;;;;;8721:26883:91;;;28865:53;;8721:26883;;540:42:1;;8721:26883:91;;;;;28865:53;;;;;;;;8721:26883;28928:14;;;;;;8721:26883;;;;;;;;;;;;;28928:14;;;;;;;;;;8721:26883;;;28928:14;;;;;:::i;:::-;8721:26883;;28928:14;8721:26883;;;;;;28928:14;8721:26883;;;;;;;;;28928:14;8721:26883;;;28865:53;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8721:26883;;;;;;;;;28817:38;;;;;;;;:::i;:::-;8721:26883;;28817:38;;;;;;8721:26883;;;;28817:38;8721:26883;;;;;;;;;28616:21;;;;;;;:::i;:::-;;;;;;8721:26883;;;;;;;;;28616:21;8721:26883;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;;:::i;:::-;;;;;;;;;29464:9;8721:26883;35553:42;8721:26883;;;;:::i;:::-;-1:-1:-1;35580:14:91;3737:10;-1:-1:-1;;;;;8721:26883:91;;;;;35553:42;:::i;:::-;8721:26883;;;;;;;;;;;;;;;;;;;;;;29522:45;;;8721:26883;29522:45;;8721:26883;29522:45;8721:26883;;;;;;;;:::i;:::-;29522:45;;;;;;;;;;;;;;8721:26883;;;;;;;;;;;;;;;;;29522:45;29659:29;8721:26883;;29659:29;;;:::i;:::-;8721:26883;;;;;;;;;;29707:22;;;;;;;;;;;;;8721:26883;29707:26;;8721:26883;;29769:25;8721:26883;;-1:-1:-1;29810:9:91;8721:26883;-1:-1:-1;;;;;8721:26883:91;;29854:36;;;:::i;:::-;29810:81;;;;;;8721:26883;;;;;;;;;;;;;;;;;;;29810:81;;8721:26883;;29810:81;;8721:26883;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81;;;;;;;;;;29765:281;;;29522:45;29765:281;;;29464:9;8721:26883;;;35553:42;;-1:-1:-1;;;;;8721:26883:91;;;:::i;:::-;-1:-1:-1;35580:14:91;3737:10;-1:-1:-1;;;;;8721:26883:91;;35553:42;:::i;:::-;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;30148:45;;;8721:26883;30148:45;;8721:26883;;;;;;:::i;:::-;30148:45;;;;;;;;;;;;29765:281;8721:26883;;;30148:74;8721:26883;;30317:66;8721:26883;;30256:51;8721:26883;;30264:22;30256:51;:::i;:::-;30325:32;30317:66;:::i;8721:26883::-;;;-1:-1:-1;;;8721:26883:91;;29522:45;8721:26883;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;30148:45;;;;29522;30148;;29522;30148;;;;;;29522;30148;;;:::i;:::-;;;8721:26883;;;;540:42:1;;8721:26883:91;30148:45;;8721:26883;;;;30148:45;;;-1:-1:-1;30148:45:91;;;8721:26883;;;;;;;;;;29810:81;;;;;:::i;:::-;8721:26883;;29810:81;;;;8721:26883;;;29765:281;29912:24;;;;;;;;8721:26883;29912:24;29908:138;;29765:281;;;29522:45;29765:281;;;;;;;29908:138;29952:9;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;29986:36;;;:::i;:::-;29952:83;;;;;;8721:26883;;;;;;;;;;;;;;;;;;;;29952:83;;8721:26883;;29952:83;;8721:26883;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;29952:83;;;;;;;;;29522:45;29952:83;;;;;;29908:138;;;;;;;;;;29952:83;;;;:::i;:::-;;;;;8721:26883;;;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;29522:45;8721:26883;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;29707:22;;;29522:45;29707:22;;29522:45;29707:22;;;;;;29522:45;29707:22;;;:::i;:::-;;;8721:26883;;;;540:42:1;29707:22:91;;;8721:26883;;;;29707:22;;;-1:-1:-1;29707:22:91;;;8721:26883;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;29522:45;;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;29522:45:91;;;;;;;-1:-1:-1;29522:45:91;;;8721:26883;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;:::i;:::-;15025:1;8721:26883;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8721:26883:91;;;;15068:178;;8721:26883;;;;;:::i;:::-;;15068:178;;8721:26883;15038:218;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;15297:180;8721:26883;15297:180;;8721:26883;;;;;;15444:18;8721:26883;;;;;;15444:18;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15297:180;;8721:26883;15267:220;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;15528:178;8721:26883;15528:178;;8721:26883;;;;;;15674:17;8721:26883;;;;;;15674:17;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15528:178;;8721:26883;15498:218;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;15757:182;8721:26883;15757:182;;8721:26883;;;;;;15905:19;8721:26883;;;;;;15905:19;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15757:182;;8721:26883;15727:222;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;15990:190;8721:26883;15990:190;;8721:26883;;;;;;16142:23;8721:26883;;;;;;16142:23;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15990:190;;8721:26883;15960:230;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;16213:42;;;;;;;;;-1:-1:-1;;;;;16213:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;16201:54;3737:10;;-1:-1:-1;;;;;;3737:10:91;;-1:-1:-1;;;;;8721:26883:91;;;3737:10;;;;;;8721:26883;;;;;;;;;;16213:42;-1:-1:-1;;;8721:26883:91;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;8721:26883:91;;;;;;;;;2130:18:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;35553:42;8721:26883;;:::i;:::-;;;:::i;35553:42::-;8721:26883;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;:::i;:::-;;;30474:26;;;;;8721:26883;;-1:-1:-1;;;30474:26:91;;-1:-1:-1;;;;;8721:26883:91;;;;30474:26;;8721:26883;;;;30474:26;8721:26883;;;30474:26;;;;;;;;;;;;;8721:26883;30510:56;;;;;;;8721:26883;;;;;;;;;;;;;;;30510:56;;8721:26883;30510:56;;8721:26883;;;;;;30510:56;;;;;;;;;;;8721:26883;;;30576:9;8721:26883;;30576:56;;;;;8721:26883;;;3053:7;8721:26883;;;;;;;;;;;;30576:56;;8721:26883;;30576:56;;8721:26883;;;;;;:::i;:::-;30576:56;;;;;;;;;;8721:26883;;30576:56;;;;:::i;:::-;8721:26883;;30576:56;8721:26883;30576:56;8721:26883;;;30510:56;;;;:::i;:::-;8721:26883;;30510:56;;;;;8721:26883;;;30474:26;;;;:::i;:::-;8721:26883;;30474:26;;;;;8721:26883;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;24348:21;;;;;-1:-1:-1;;;;;24348:21:91;;;;;;;;;;;;;;;;;;;;;;;8721:26883;;24413:23;;;;;-1:-1:-1;;;;;24413:23:91;;;;;;;;;;;;;;;;;;;;;;;;8721:26883;;24483:25;;;;;-1:-1:-1;;;;;24483:25:91;;;;;;;;;;;;;;;;;;;;;;;;8721:26883;;24553:23;;;;;-1:-1:-1;;;;;24553:23:91;;;;;;;;;;;;;;;;;;;;;;;;8721:26883;;;;;;:::i;:::-;;;;;;;;;24617:200;8721:26883;24617:200;;8721:26883;;;;;;24779:23;8721:26883;;;;;;24779:23;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24617:200;;8721:26883;24587:240;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;24867:198;8721:26883;24867:198;;8721:26883;;;;;;25027:23;8721:26883;;;;;;25027:23;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24867:198;;8721:26883;24837:238;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;25115:206;8721:26883;25115:206;;8721:26883;;;;;;25278:28;8721:26883;;;;;;25278:28;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25115:206;;8721:26883;25085:246;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;25371:212;8721:26883;25371:212;;8721:26883;;;;;;25534:34;8721:26883;;;;;;25534:34;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25371:212;;8721:26883;25341:252;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;25646:45;;;;;;;;;;-1:-1:-1;;;;;25646:45:91;;;;;;8721:26883;25646:45;;;8721:26883;25646:45;;;;8721:26883;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;25646:45;;;;;;;;8721:26883;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;25706:49;;8721:26883;25706:49;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24553:23;-1:-1:-1;;;8721:26883:91;;;;;;;;24413:23;-1:-1:-1;;;8721:26883:91;;;;;;;;24348:21;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;8721:26883:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;-1:-1:-1;8721:26883:91;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;-1:-1:-1;8721:26883:91;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;;;;:::i;:::-;;1671:64:2;;8721:26883:91;;;;;;;6628:51:16;;8721:26883:91;;6628:51:16;;;;;;;;8721:26883:91;6628:51:16;;;8721:26883:91;;;;;;:::i;:::-;;;;;;;6628:51:16;779:22:61;;6628:51:16;;;;;;:::i;:::-;8721:26883:91;392:159:16;131:42;392:159;;;8721:26883:91;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3;;;8721:26883;19669:43;;;;8721:26883;;;19735:29;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;;;;;;;8721:26883;19735:29;;;;;;8721:26883;;;;;3737:10;;-1:-1:-1;;;;;3737:10:91;;8721:26883;;3737:10;19723:41;3737:10;;;19723:41;3737:10;8721:26883;;19785:28;;;;;;;;;;;;;;;;;;;;;;8721:26883;19785:28;;;;;8721:26883;;3737:10;19774:39;3737:10;;;19774:39;3737:10;8721:26883;;19834:27;;;;;;;;;;;;;;;;;;;;;;8721:26883;19834:27;;;;;8721:26883;;3737:10;19823:38;3737:10;;;19823:38;3737:10;8721:26883;;19888:35;;;;;;;;;;;;;;;;;;;;;;8721:26883;19888:35;;;;;8721:26883;;3737:10;19871:52;3737:10;;;19871:52;3737:10;8721:26883;;19946:28;;;;;;;;;;;;;;;;;;;;;;8721:26883;19946:28;;;;;8721:26883;;3737:10;19933:41;3737:10;;;19933:41;3737:10;8721:26883;;19995:21;;;;;;;;;;;;;;;;;;;;;;8721:26883;19995:21;;;;;8721:26883;;3737:10;19984:32;3737:10;;;19984:32;3737:10;8721:26883;;20037:23;;;;;;;;;;;;;;;;;;;;;;8721:26883;20037:23;;;;;;21606:229;8721:26883;21918:657;8721:26883;;;;;;;;;;;3737:10;;20026:34;3737:10;;;20026:34;3737:10;20111:26;;:::i;:::-;8721:26883;;;19723:41;8721:26883;;;;;;;;:::i;:::-;;;;20178:191;;;8721:26883;;;:::i;:::-;;20178:191;;8721:26883;20148:231;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;19774:39;8721:26883;;;;;;;;:::i;:::-;;;;20420:189;;;8721:26883;;;:::i;:::-;;20420:189;;8721:26883;20390:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;19823:38;8721:26883;;;;;;;;:::i;:::-;;;;20660:189;;;8721:26883;;;:::i;:::-;;20660:189;;8721:26883;20630:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;19933:41;8721:26883;;;;;;;;:::i;:::-;;;;20900:193;;;8721:26883;;;:::i;:::-;;20900:193;;8721:26883;20870:233;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;19871:52;8721:26883;;;;;;;;:::i;:::-;;;;21144:201;;;8721:26883;;;:::i;:::-;;21144:201;;8721:26883;21114:241;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;19984:32;8721:26883;;;;;;;;:::i;:::-;;;;21396:189;;;8721:26883;;;:::i;:::-;;21396:189;;8721:26883;21366:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;21636:189;;;8721:26883;;;:::i;:::-;;21636:189;;8721:26883;21606:229;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;8721:26883;;;;;;;;:::i;:::-;;;21918:657;;;8721:26883;;21918:657;;;:::i;:::-;8721:26883;;;21918:657;;8721:26883;;21918:657;;;3693:3;8721:26883;;21918:657;;3693:3;8721:26883;;21918:657;;3251:7;8721:26883;;21918:657;;3251:7;;21918:657;;;8721:26883;22395:2;21918:657;;;3251:7;8721:26883;21918:657;;;3251:7;21918:657;;;8721:26883;;;21858:727;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;21858:727;;;;;8721:26883;3737:10;;;21846:739;3737:10;;;21846:739;3737:10;;;19723:41;3737:10;;;19723:41;3737:10;;;19823:38;3737:10;;;19823:38;3737:10;;;19933:41;3737:10;;;19933:41;3737:10;;;19871:52;3737:10;;;19871:52;3737:10;;;19774:39;3737:10;;;19774:39;3737:10;;;19984:32;3737:10;;;19984:32;3737:10;20026:34;3737:10;;;20026:34;3737:10;8721:26883;;21858:727;8721:26883;;;;;;;;;21858:727;-1:-1:-1;;;8721:26883:91;;;;;;;;20037:23;8721:26883;;;;;;;;;;;19735:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;26191:12;;;;26199:3;26191:12;;8721:26883;26191:12;;8721:26883;;1220:14:3;;8721:26883:91;26191:12;;;;;;;;;;;;;;;;8721:26883;26169:35;;;;:::i;:::-;26153:51;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;26252:12;;;26260:3;8721:26883;26252:12;;8721:26883;26252:12;;;;;;;;;;;;;;;8721:26883;26230:35;;;;:::i;:::-;26214:51;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;26313:12;;;;26321:3;26313:12;;8721:26883;26313:12;;8721:26883;26313:12;;;;;;;;;;;;;;;8721:26883;26291:35;;;;:::i;:::-;26275:51;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;;;;;;26390:12;;;;;8721:26883;26390:12;;8721:26883;26390:12;;;;;;;;;;;;;;;;8721:26883;26375:27;;;;:::i;:::-;-1:-1:-1;;;;;8721:26883:91;;;;;;;26427:12;;;26260:3;8721:26883;26427:12;;8721:26883;26427:12;8721:26883;26427:12;8721:26883;26427:12;;;;;;;;;;;;8721:26883;26412:27;;;;;:::i;:::-;8721:26883;;;;;;26464:12;;;;8721:26883;26464:12;;8721:26883;26464:12;;;;;;;;;;;;;;;;8721:26883;26449:27;;;;;:::i;:::-;8721:26883;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;8721:26883:91;;;26549:12;;;;;8721:26883;26549:12;;8721:26883;26549:12;;;;;;;;;;;;;;;;8721:26883;26541:24;;;;;;8721:26883;;-1:-1:-1;;;26541:24:91;;;8721:26883;;;;26541:24;;8721:26883;;1220:14:3;;;8721:26883:91;;;;;26541:24;8721:26883;1220:14:3;8721:26883:91;26541:24;;;;;;;;;;;;;8721:26883;;;;;26583:12;;;26260:3;8721:26883;26583:12;;8721:26883;26583:12;;;;;;;;;;;;;;;;8721:26883;26575:24;;;;;;8721:26883;;;26575:24;;;;8721:26883;;26575:24;;8721:26883;1220:14:3;;;;8721:26883:91;26575:24;;1220:14:3;26575:24:91;;;;;;;;;;;;;;8721:26883;;;;;26617:12;;;8721:26883;26617:12;;8721:26883;26617:12;;;;;;;;;;;;;;;;8721:26883;26609:24;;;;;;8721:26883;;;;26609:24;;;8721:26883;;26609:24;;8721:26883;1220:14:3;;;;8721:26883:91;26609:24;;1220:14:3;26609:24:91;;;;;;;;;;;;;;8721:26883;26644:16;;;;;26696;26644;;:::i;:::-;8721:26883;26670:16;;;;:::i;:::-;8721:26883;26696:16;:::i;:::-;8721:26883;;;;;;;:::i;:::-;26780:12;8721:26883;;26756:61;;;;8721:26883;26828:33;;;;;8721:26883;;-1:-1:-1;;;26828:33:91;;-1:-1:-1;;;8721:26883:91;26828:33;;8721:26883;;;;;;;;;;26828:33;;;;;;;;;;;;;;8721:26883;-1:-1:-1;26871:22:91;540:42:1;8721:26883:91;;-1:-1:-1;;;26871:53:91;;540:42:1;;8721:26883:91;26871:53;;8721:26883;540:42:1;;;;;;;;8721:26883:91;;;;;540:42:1;;8721:26883:91;;;;26871:53;;;;;;;;8721:26883;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26871:53;;;;;;;;;;;;;:::i;:::-;;;;26828:33;;;;;;;;;:::i;:::-;8721:26883;;26828:33;;;;;;;26609:24;;;;:::i;:::-;8721:26883;;26609:24;;;;;8721:26883;;;26617:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26617:12:91;;;;;;;;;8721:26883;;;;;;;;;26575:24;;;;:::i;:::-;8721:26883;;26575:24;;;;8721:26883;;;;26575:24;8721:26883;;;;;;;;;26575:24;8721:26883;;;26583:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26583:12:91;;;;;;;;26541:24;;;;:::i;:::-;8721:26883;;26541:24;;;;26549:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26549:12:91;;;;;;;;;26464;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26464:12:91;;;;;;;;26427;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26427:12:91;;;;;;;;26390;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26390:12:91;;;;;;;;;26313;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26291:35:91;1220:14:3;;:::i;:::-;26313:12:91;;;;;;;26252;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26230:35:91;1220:14:3;;:::i;:::-;26252:12:91;;;;;;;26191;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26169:35:91;1220:14:3;;:::i;:::-;26191:12:91;;;;;;;8721:26883;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;:::i;:::-;;;:::i;:::-;34850:14;3737:10;-1:-1:-1;;;;;8721:26883:91;;34081:38;;;;;8721:26883;;-1:-1:-1;;;34081:38:91;;8721:26883;;34081:38;;8721:26883;;;;;;;;;;;34081:38;;;;;;;;8721:26883;34212:64;;8721:26883;34212:64;;;:::i;:::-;8721:26883;;;;;-1:-1:-1;;;34319:25:91;;8721:26883;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;-1:-1:-1;;;;;8721:26883:91;34319:25;;;;;;;;;;;8721:26883;;;;;;;;;;;;;;34376:11;;;8721:26883;34376:11;;8721:26883;;;;;;:::i;:::-;34376:11;:9;;:11;;;;;;;;;;;;;;8721:26883;-1:-1:-1;8721:26883:91;;-1:-1:-1;;;34391:43:91;;8721:26883;;;;;;34391:43;;8721:26883;;34391:43;;;:::i;:::-;;34376:9;;34391:43;;;;;;;8721:26883;34391:43;8721:26883;34391:43;;;;;8721:26883;;;;;;;;;;;34391:52;;;8721:26883;34391:52;;8721:26883;;;;;;:::i;:::-;34391:52;34376:9;;34391:52;;;;;;;;;;8721:26883;34376:67;;8721:26883;;34604:46;34660:49;34554:19;34546:48;8721:26883;;34554:19;;34546:48;:::i;:::-;34612:17;34604:46;:::i;:::-;34668:15;34660:49;:::i;:::-;8721:26883;;;;;-1:-1:-1;;;27226:25:91;;8721:26883;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;27226:25;;;;;;;:48;:25;;;;;;;8721:26883;-1:-1:-1;8721:26883:91;;-1:-1:-1;;;27226:48:91;;8721:26883;;;;;;27226:48;;;:::i;:::-;;34376:9;;27226:48;;;;;;;;;;;8721:26883;27308:29;;8721:26883;27308:29;;;:::i;:::-;8721:26883;;;;;;:::i;:::-;;;;27183:173;;8721:26883;;;;;;-1:-1:-1;;;27421:25:91;;8721:26883;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;27421:25;;;;;;;:45;:25;;;;;;;-1:-1:-1;8721:26883:91;;-1:-1:-1;;;27421:45:91;;8721:26883;;;;;;27421:45;;;:::i;:::-;;34376:9;;27421:45;;;;;;;;;;;8721:26883;27500:26;;;;:::i;:::-;8721:26883;;;;;;:::i;:::-;;;;27378:167;;8721:26883;;;;;;;:::i;:::-;1671:64:2;;;8721:26883:91;;;;;;:::i;:::-;;;;27147:608;;8721:26883;;;27147:608;;8721:26883;27147:608;;;;;3693:3;27147:608;;;;;;234:9:40;8721:26883:91;27147:608;;;;8721:26883;27147:608;;3251:7;27147:608;;;8721:26883;;;;;;;:::i;:::-;;;27115:679;8721:26883;27115:679;;234:9:40;8721:26883:91;;;;;;:::i;:::-;;;;;;234:9:40;;8721:26883:91;234:9:40;;;;27856:18:91;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;28104:33;;;;;8721:26883;;-1:-1:-1;;;28104:33:91;;-1:-1:-1;;;8721:26883:91;28104:33;;8721:26883;;;;;;;;;;;;28104:33;;;;;;;;234:9:40;-1:-1:-1;;28147:20:91;234:9:40;-1:-1:-1;;;;;8721:26883:91;;28147:45;;;;;8721:26883;;;;;;;;;;;28147:45;;8721:26883;234:9:40;;28147:45:91;8721:26883;;28147:45;;234:9:40;8721:26883:91;;;;;;;;234:9:40;8721:26883:91;;234:9:40;;;;;;;;;;;;;;;;;28147:45:91;;;;;;;;;;;;;;;;;;;234:9:40;8721:26883:91;;;;2508:20:60;;8721:26883:91;2508:20:60;;;8721:26883:91;;;;;;;;;:::i;:::-;2508:20:60;779:22:61;;2508:20:60;;;;;;:::i;:::-;8721:26883:91;2498:31:60;;8721:26883:91;;;;;;28147:45;;;;;:::i;:::-;8721:26883;;28147:45;;;234:9:40;;;;;;;;;8721:26883:91;234:9:40;;;;;;;;;;;;;;;:::i;:::-;8721:26883:91;;234:9:40;;;;;;;;;;;;;;;28104:33:91;;;;:::i;:::-;8721:26883;;28104:33;;;;234:9:40;8721:26883:91;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;8721:26883:91;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27421:45:91;27500:26;27421:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;27226:48;8721:26883;27226:48;;;27308:29;27226:48;;;;;;;;;;:::i;:::-;;;;;8721:26883;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;34391:52;;;;8721:26883;34391:52;;8721:26883;34391:52;;;;;;8721:26883;34391:52;;;:::i;:::-;;;8721:26883;;;;540:42:1;34391:52:91;;;;;;;-1:-1:-1;34391:52:91;;:43;;;;;;;;;;;;;:::i;:::-;;;;34376:11;;;;;8721:26883;34376:11;;8721:26883;34376:11;;;;;;8721:26883;34376:11;;;:::i;:::-;;;8721:26883;;;;540:42:1;;;34391:43:91;34376:11;;;;;-1:-1:-1;34376:11:91;;34319:25;8721:26883;34319:25;;;;8721:26883;34319:25;;;;;;;;;;:::i;:::-;;;;;;34081:38;8721:26883;34081:38;;;34212:64;34081:38;;:::i;:::-;;;;;;8721:26883;;;;;;;;;;;;;;;;;:::i;:::-;;;23178:21;;;;;-1:-1:-1;;;;;23178:21:91;;;;;;;;;;;;;;;;;;;;;;;;;8721:26883;;23241:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8721:26883;;;;;;;;:::i;:::-;23344:1;8721:26883;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8721:26883:91;;;;;23387:201;;;8721:26883;;;;;23549:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;23900:39;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23387:201;;8721:26883;23357:241;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;;:::i;:::-;;;;23639:187;;;;8721:26883;;;:::i;:::-;;23639:187;;8721:26883;23609:227;;;:::i;:::-;;;;;:::i;:::-;;23900:39;:::i;:::-;8721:26883;;;23973:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8721:26883;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;8721:26883:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;8721:26883:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;-1:-1:-1;8721:26883:91;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;;;:::i;:::-;;;;;;;;;;;;35553:42;8721:26883;29464:9;8721:26883;;;;:::i;:::-;;3737:10;35580:14;3737:10;8721:26883;35553:42;;:::i;:::-;8721:26883;;;;;;;;;;;;;;;;;;29522:45;;;;;;;;;;;;;;8721:26883;29522:45;;8721:26883;;;;;:::i;:::-;29522:45;;;;;;;;;8721:26883;29522:45;;;8721:26883;;;;;;;;;;;;;;;;;;29659:29;;;8721:26883;29659:29;;:::i;:::-;8721:26883;;;;;;;;;;29707:22;;;;;;;;;8721:26883;29707:22;;;8721:26883;29707:26;;8721:26883;;29854:36;8721:26883;29810:9;8721:26883;;29854:36;;:::i;:::-;29810:81;;;;;;8721:26883;;;;;;;;;;;;;;;;;29810:81;;8721:26883;;29810:81;;8721:26883;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81;;;;;;;;;;;8721:26883;29810:81;;;;;8721:26883;;35553:42;8721:26883;29464:9;8721:26883;;;;:::i;:::-;;3737:10;35580:14;3737:10;8721:26883;35553:42;;:::i;:::-;8721:26883;;;;;;;;;;;;;30148:45;;;;;;;;;;8721:26883;30148:45;;8721:26883;;;;;:::i;:::-;30148:45;;;;;;;;;8721:26883;30148:45;;;8721:26883;30148:74;;8721:26883;;30264:22;30317:66;30264:22;;;30256:51;30264:22;;30256:51;:::i;8721:26883::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;30148:45;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;;30148:45:91;;;;;;;;29810:81;;;;:::i;:::-;;;;8721:26883;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;29707:22;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;;29707:22:91;;;;;;;;8721:26883;;;;;;;;;;;;29522:45;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;;29522:45:91;;;;;;;;;8721:26883;;;;;;;;;;;;;2592:26:8;8721:26883:91;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;34850:14;8721:26883;;:::i;:::-;34850:14;3737:10;-1:-1:-1;;;;;8721:26883:91;;;;34850:14;:::i;8721:26883::-;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3;;;8721:26883;19669:43;;8721:26883;;;19735:29;;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;8721:26883;19735:29;;;;;8721:26883;;;;;;-1:-1:-1;;;;;3737:10:91;;19723:41;3737:10;;;19723:41;3737:10;8721:26883;;19785:28;;;;;;;-1:-1:-1;;;;;19785:28:91;;;;;;;;;;;;8721:26883;19785:28;;;;;8721:26883;;;;;;-1:-1:-1;;;;;3737:10:91;;19774:39;3737:10;;;19774:39;3737:10;8721:26883;;19834:27;;;;;;;-1:-1:-1;;;;;19834:27:91;;;;;;;;;;;;8721:26883;19834:27;;;;;8721:26883;;;;;;-1:-1:-1;;;;;3737:10:91;;19823:38;3737:10;;;19823:38;3737:10;8721:26883;;19888:35;;;;;;;-1:-1:-1;;;;;19888:35:91;;;;;;;;;;;;8721:26883;19888:35;;;;;8721:26883;;;;;;-1:-1:-1;;;;;3737:10:91;;19871:52;3737:10;;;19871:52;3737:10;8721:26883;;19946:28;;;;;;;-1:-1:-1;;;;;19946:28:91;;;;;;;;;;;;8721:26883;19946:28;;;;;8721:26883;;;;;;-1:-1:-1;;;;;3737:10:91;;19933:41;3737:10;;;19933:41;3737:10;8721:26883;;19995:21;;;;;;;-1:-1:-1;;;;;19995:21:91;;;;;;;;;;;;8721:26883;19995:21;;;;;8721:26883;;;;;;-1:-1:-1;;;;;3737:10:91;;19984:32;3737:10;;;19984:32;3737:10;8721:26883;;20037:23;;;;;;;-1:-1:-1;;;;;20037:23:91;;;;;;;;;;;;8721:26883;20037:23;;;;;;20026:34;3737:10;;-1:-1:-1;;;;;;3737:10:91;-1:-1:-1;;;;;8721:26883:91;;3737:10;;;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;;20111:26;;:::i;:::-;19723:41;8721:26883;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;:::i;:::-;;;;;20178:191;;8721:26883;;;:::i;:::-;;20178:191;;8721:26883;20148:231;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19774:39:91;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;;;:::i;:::-;;;;;20420:189;;8721:26883;;;:::i;:::-;;20420:189;;8721:26883;20390:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19823:38:91;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;;;:::i;:::-;;;;;20660:189;;8721:26883;;;:::i;:::-;;20660:189;;8721:26883;20630:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19933:41:91;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;;;:::i;:::-;;;;;20900:193;;8721:26883;;;:::i;:::-;;20900:193;;8721:26883;20870:233;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19871:52:91;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;;;:::i;:::-;;;;;21144:201;;8721:26883;;;:::i;:::-;;21144:201;;8721:26883;21114:241;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19984:32:91;8721:26883;;;;-1:-1:-1;;;;;8721:26883:91;;;;:::i;:::-;;;;;21396:189;;8721:26883;;;:::i;:::-;;21396:189;;8721:26883;21366:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;-1:-1:-1;;;;;8721:26883:91;;;;;21636:189;;8721:26883;;;:::i;:::-;;21636:189;;8721:26883;21606:229;;;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;8721:26883;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;21918:657;;8721:26883;21918:657;8721:26883;;;21918:657;;;:::i;:::-;8721:26883;;;21918:657;;8721:26883;;21918:657;;;3693:3;8721:26883;;21918:657;;3693:3;8721:26883;21918:657;;;3251:7;8721:26883;;21918:657;;3251:7;;8721:26883;21918:657;;8721:26883;22395:2;21918:657;;;3251:7;;8721:26883;;3251:7;:::i;:::-;8721:26883;;21918:657;;;3251:7;21918:657;;;8721:26883;;;21858:727;;;;;;;;;;-1:-1:-1;;;;;21858:727:91;;;;;;;;;;;;;:::i;:::-;;;8721:26883;21858:727;;;;;21846:739;3737:10;;-1:-1:-1;;;;;8721:26883:91;;;;-1:-1:-1;;;;;;3737:10:91;;;;;;;;19723:41;3737:10;;;;;;;;19823:38;3737:10;;;;;;;;19933:41;3737:10;;;;;;;;19871:52;3737:10;;;;;;;;19774:39;3737:10;;;;;;;;19984:32;3737:10;;;;;;;;20026:34;3737:10;;;;;;;;8721:26883;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;:::i;:::-;28446:19;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;28475:48::-;;28322:3;28586:19;8721:26883;;;;;:::i;:::-;28463:1;8721:26883;;;;1220:14:3;;;8721:26883:91;28586:19;:::i;8721:26883::-;;;;;;;;;;;;;;;;;;2747:18:8;8721:26883:91;;;;;;;;;2747:18:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;8721:26883:91;;;;;;;;;3040:16:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33131:24:91;;;8721:26883;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;33131:24;;;;;;;;;;;8721:26883;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;33169:9;8721:26883;;33231:10;;33209:33;33231:10;33209:33;:::i;:::-;33169:74;;;;;;8721:26883;;;;;;;;;;;;;;33169:74;;;8721:26883;33169:74;;8721:26883;;;;;;:::i;:::-;33169:74;8721:26883;;;33169:74;;;;;;;;;;;;8721:26883;;;;;;;;;;33261:24;;;;;;;;;;;;;;;;;8721:26883;;;;;;33261:41;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;33261:24;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;;;;;:::i;:::-;33261:24;;;;;;;;;33169:74;;;;;;;:::i;:::-;8721:26883;;33169:74;;;;;;8721:26883;;;;;;;;;;;;33131:24;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;;;;:::i;:::-;33131:24;;;;;;;;;8721:26883;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25870:11;25898:12;25893:73;25919:3;8721:26883;;;;25912:5;;;;;8721:26883;;-1:-1:-1;3737:10:91;;;25938:17;3737:10;;;;;;;;;;;8721:26883;25938:17;;:::i;:::-;25919:3;8721:26883;;;;;;;;25898:12;;;8721:26883;-1:-1:-1;;;8721:26883:91;;;;;;;;3737:10;8721:26883;;;;;3737:10;;8721:26883;3737:10;8721:26883;3737:10;25912:5;;;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;:::i;:::-;33464:21;;8721:26883;;;:::i;:::-;-1:-1:-1;35580:14:91;3737:10;-1:-1:-1;;;;;8721:26883:91;3737:10;35553:42;;8721:26883;;35553:42;;:::i;:::-;8721:26883;;;;;;;33564:9;8721:26883;;33564:40;;;;;;8721:26883;;;;;;;;;;;;33564:40;;;;;;;;;;8721:26883;33638:21;;35553:42;33638:21;;8721:26883;;;:::i;:::-;;35580:14;3737:10;8721:26883;35553:42;;:::i;:::-;8721:26883;;;;;;;;;;;;;;33744:43;8721:26883;;33820:70;33843:26;;;;:::i;:::-;33828:41;33820:70;:::i;8721:26883::-;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;33564:40;;;35553:42;33564:40;;;:::i;:::-;;;;;8721:26883;;;;;;;;;;;;;;;;;;2272:16:8;8721:26883:91;;;;;;;;;2272:16:8;8721:26883:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9415:41;8721:26883;;-1:-1:-1;;;;;8721:26883:91;;:::i;:::-;9214:1;8721:26883;;9214:1;9226:25;8721:26883;;;;;;;;9226:25;:::i;:::-;8721:26883;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3;;;11095:58;;;8721:26883;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;3110:2;11035:412;;;8721:26883;3251:7;8721:26883;11035:412;;8721:26883;3001:2;11035:412;;;3251:7;8721:26883;11035:412;;8721:26883;3606:3;8721:26883;11035:412;;3251:7;-1:-1:-1;;;;;8721:26883:91;;;9415:41;:::i;:::-;8721:26883;3737:10;10327:38;10222:82;-1:-1:-1;;;;;3737:10:91;;;;;9398:58;3737:10;;;9398:58;3737:10;;;8721:26883;3737:10;;;8721:26883;3737:10;;;9531:56;3737:10;;;9531:56;3737:10;;;9597:66;3737:10;;;9597:66;3737:10;;;9673:66;3737:10;;;9673:66;3737:10;;;9749:70;3737:10;;;9749:70;3737:10;;;9829:68;3737:10;;;9829:68;3737:10;;;9907:60;3737:10;;;9907:60;3737:10;;;9977:53;3737:10;;;9977:53;3737:10;;;3001:2;3737:10;;;3001:2;3737:10;10222:82;:::i;10327:38::-;8721:26883;3737:10;;;10315:50;3737:10;;;10315:50;3737:10;;;10375:55;3737:10;;;10375:55;3737:10;;;10440:53;3737:10;;;10440:53;3737:10;;;10503:52;3737:10;;;10503:52;3737:10;;;10565:55;3737:10;;;10565:55;3737:10;;;10630:66;3737:10;;;10630:66;3737:10;;;10706:48;3737:10;;;10706:48;3737:10;10764:46;3737:10;;;10764:46;3737:10;28475:48;28446:19;;:::i;:::-;8721:26883;;:::i;:::-;-1:-1:-1;8721:26883:91;;-1:-1:-1;;;779:22:61;;;480:2;;779:22;;695:118;;779:22;8721:26883:91;779:22:61;:::i;:::-;480:2;8721:26883:91;;;;;;:::i;:::-;3110:2;3693:3;;-1:-1:-1;;;;;719:84:61;;;480:2;;;8721:26883:91;719:84:61;;8721:26883:91;;;;;695:118:61;;;;;;;480:2;;8721:26883:91;;480:2:61;;8721:26883:91;480:2:61;;;;;;;;8721:26883:91;480:2:61;;;8721:26883:91;480:2:61;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;8721:26883:91;;;;;;:::i;:::-;;3251:7;;837:51:61;;;8721:26883:91;28475:48;;;;;:::i;:::-;;3606:3;28586:19;8721:26883;;;;;:::i;:::-;9214:1;8721:26883;;;;1220:14:3;;;8721:26883:91;28586:19;:::i;:::-;8721:26883;;28616:21;;;;;;8721:26883;;-1:-1:-1;;;28616:21:91;;8721:26883;;28616:21;;8721:26883;9214:1;1220:14:3;;;8721:26883:91;28616:21;8721:26883;9829:68;8721:26883;28616:21;;;;;;;;;;8721:26883;;;;;;;;;:::i;:::-;28704:12;8721:26883;;28680:61;;8721:26883;28817:38;;;;;8721:26883;;-1:-1:-1;;;28817:38:91;;-1:-1:-1;;;8721:26883:91;28817:38;;8721:26883;28817:38;8721:26883;1220:14:3;8721:26883:91;28817:38;;;;;;;;;;;;;;;;8721:26883;-1:-1:-1;9749:70:91;540:42:1;8721:26883:91;;-1:-1:-1;;;28865:53:91;;540:42:1;;8721:26883:91;28865:53;;8721:26883;540:42:1;;;;;;;;8721:26883:91;;;;;540:42:1;;8721:26883:91;;;;28865:53;;;;;;;;8721:26883;28928:14;;;;;;;8721:26883;;;;;;;;;;;;;28928:14;;;;;;;;;;8721:26883;;;28865:53;;;;;;-1:-1:-1;28865:53:91;;;;;;:::i;:::-;;;28817:38;;;;;;;;;:::i;:::-;8721:26883;;28817:38;;;;;;;28616:21;;;;;;:::i;:::-;8721:26883;28616:21;;;;8721:26883;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;779:22:61;;;8721:26883:91;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;8721:26883:91;;;;779:22:61;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;779:22:61;8721:26883:91;-1:-1:-1;;8721:26883:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8721:26883:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;:::i;:::-;;;;;;;:::o;1671:64:2:-;;8721:26883:91;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;8721:26883:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;8721:26883:91;;;;;;;2196:43:2;;;;8721:26883:91;;;1671:64:2;;;8721:26883:91;1671:64:2;;8721:26883:91;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;8721:26883:91;;2086:175:2;;1671:64;2196:43;2086:175;;8721:26883:91;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;8721:26883:91;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;8721:26883:91;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;8721:26883:91;1671:64:2;;;8721:26883:91;;;;;;;23794:17;8721:26883;;;;;;;;;;;23794:17;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;20336:18;8721:26883;;;;;;;;;;;20336:18;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;20817:17;8721:26883;;;;;;;;;;;20817:17;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;21059:19;8721:26883;;;;;;;;;;;21059:19;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;21307:23;8721:26883;;;;;;;;;;;21307:23;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;21553:17;8721:26883;;;;;;;;;;;21553:17;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;21793:17;8721:26883;;;;;;;;;;;21793:17;-1:-1:-1;8721:26883:91;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;-1:-1:-1;8721:26883:91;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;3737:10;8721:26883;;3737:10;;;;;;:::o;:::-;8721:26883;;;;3737:10;;;;;8721:26883;3737:10;;8721:26883;;23620:1;3737:10;;;;;;;:::o;:::-;8721:26883;;26286:1;3737:10;;;;;;;:::o;:::-;8721:26883;;25352:1;3737:10;;;;;;;:::o;:::-;8721:26883;;;3737:10;;;;;;;:::o;:::-;8721:26883;;12581:1;3737:10;;;;;;;:::o;:::-;8721:26883;;12845:1;3737:10;;;;;;;:::o;:::-;8721:26883;;13113:1;3737:10;;;;;;;:::o;:::-;8721:26883;;14346:1;3737:10;;;;;;;:::o;8721:26883::-;;;;;;;:::i;:::-;1671:64:2;8721:26883:91;;-1:-1:-1;8721:26883:91;;;;:::o;3251:7::-;;;;;;;;:::o;:::-;8721:26883;;;-1:-1:-1;3251:7:91;;;;;-1:-1:-1;3251:7:91;;;-1:-1:-1;3251:7:91;;;:::o;7710:1007::-;8721:26883;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3651:2;8721:26883;;;;;;3251:7;8721:26883;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7896:27;;;:::i;:::-;8721:26883;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3;;;8721:26883;8047:58;;8721:26883;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8721:26883:91;;7986:700;;8721:26883;7986:700;;3251:7;3053;8721:26883;7986:700;;8721:26883;;;7986:700;;3693:3;3110:2;8721:26883;7986:700;;3693:3;3001:2;8721:26883;7986:700;;3251:7;3606:3;8721:26883;7986:700;;3251:7;7986:700;;8721:26883;7986:700;;3251:7;7986:700;;3251:7;7986:700;;8721:26883;;7710:1007::o;4539:185:76:-;-1:-1:-1;8721:26883:91;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;8721:26883:91;;-1:-1:-1;8721:26883:91;4618:99:76;;8721:26883:91;4539:185:76;:::o;8721:26883:91:-;;;;;;;:::i;:::-;;;;-1:-1:-1;8721:26883:91;;-1:-1:-1;8721:26883:91;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;16974:1;8721:26883;;;-1:-1:-1;8721:26883:91;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;;:::o;:::-;779:22:61;;;;;;;;8721:26883:91;;779:22:61;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;3251:7;;;:::i;:::-;8721:26883;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;11484:3185;;8721:26883;;11644:24;;;;;;;-1:-1:-1;;;;;11644:24:91;;;;;;;;;;;;;;;;;;8721:26883;;11718:24;;;;;;;-1:-1:-1;;;;;11718:24:91;;;;;;;;;;;;11644;11718;;;;;8721:26883;;11796:26;;;;;;;-1:-1:-1;;;;;11796:26:91;;;;;;;;;;;;11644:24;11796:26;;;;;;8721:26883;;11874:25;;;;;;;-1:-1:-1;;;;;11874:25:91;;;;;;;;;;;;11644:24;11874:25;;;;;8721:26883;;11940:25;;;;;;;-1:-1:-1;;;;;11940:25:91;;;;;;;;;;;;11644:24;11940:25;;;;;8721:26883;;12003:24;;;;;;;-1:-1:-1;;;;;12003:24:91;;;;;;;;;;;;11644;12003;;;;;;8721:26883;;12071:27;;;;;;;-1:-1:-1;;;;;12071:27:91;;;;;;;;;;;;11644:24;12071:27;;;;;;8721:26883;;12133:21;;;;;;;-1:-1:-1;;;;;12133:21:91;;;;;;;;;;;;11644:24;12133:21;;;;;;8721:26883;;12191:23;;;;;;;-1:-1:-1;;;;;12191:23:91;;;;;;;;;;;;11644:24;12191:23;;;;;;8721:26883;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;12291:1;8721:26883;;11644:24;8721:26883;;;;;;;;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;12336:211;;8721:26883;;;;;;12503:29;8721:26883;;;;;;12503:29;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12336:211;;8721:26883;12304:253;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;12600:211;;8721:26883;;;;;;12767:29;8721:26883;;;;;;12767:29;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12600:211;;8721:26883;12568:253;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;12864:215;;8721:26883;;;;;;13033:31;8721:26883;;;;;;13033:31;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12864:215;;8721:26883;12832:257;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;13132:213;;8721:26883;;;;;;13300:30;8721:26883;;;;;;13300:30;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13132:213;;8721:26883;13100:255;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;13398:189;;8721:26883;;;;;;13554:18;8721:26883;;;;;;13554:18;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13398:189;;8721:26883;13366:231;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;13640:187;;8721:26883;;;;;;13795:17;8721:26883;;;;;;13795:17;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13640:187;;8721:26883;13608:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;13880:193;;8721:26883;;;;;;14038:20;8721:26883;;;;;;14038:20;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13880:193;;8721:26883;13848:235;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;14126:186;;8721:26883;;;;;;14281:16;8721:26883;;;;;;14281:16;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14126:186;;8721:26883;14094:228;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;11644:24;8721:26883;14365:187;;8721:26883;;;;;;14520:17;8721:26883;;;;;;14520:17;11644:24;8721:26883;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14365:187;;8721:26883;14333:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;14590:40;;;;;;;;;-1:-1:-1;;;;;14590:40:91;;;;;8721:26883;14590:40;;;;8721:26883;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11644:24;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;14590:40;;11644:24;14590:40;;;;;14573:57;3737:10;;-1:-1:-1;;;;;;3737:10:91;-1:-1:-1;;;;;8721:26883:91;;;;3737:10;;;;;8721:26883;11484:3185::o;8721:26883::-;779:22:61;;;;;;8721:26883:91;779:22:61;8721:26883:91;;779:22:61;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3251:7;;;;;8721:26883;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3251:7;;;;:::i;:::-;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16294:2480::-;8721:26883;;16453:29;;;;;;;-1:-1:-1;;;;;16453:29:91;;;;;;;;;;;;;;;;;;8721:26883;;16524:28;;;;;;;-1:-1:-1;;;;;16524:28:91;;;;;;;;;;;;16453:29;16524:28;;;;;8721:26883;;16593:27;;;;;;;-1:-1:-1;;;;;16593:27:91;;;;;;;;;;;;16453:29;16593:27;;;;;;8721:26883;;16664:28;;;;;;;-1:-1:-1;;;;;16664:28:91;;;;;;;;;;;;16453:29;16664:28;;;;;8721:26883;;16747:35;;;;;;;-1:-1:-1;;;;;16747:35:91;;;;;;;;;;;;16453:29;16747:35;;;;;;8721:26883;;16820:23;;;;;;;-1:-1:-1;;;;;16820:23:91;;;;;;;;;;;;16453:29;16820:23;;;;;;8721:26883;;16878:21;;;;;;;-1:-1:-1;;;;;16878:21:91;;;;;;;;;;;;16453:29;16878:21;;;;;;16950:26;;:::i;:::-;8721:26883;;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;;;8721:26883;;;;;17017:189;17173:18;8721:26883;;;;;;17173:18;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17017:189;;8721:26883;16987:229;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;17257:187;;8721:26883;;;;;17017:189;17412:17;8721:26883;;;;;;17412:17;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17257:187;;8721:26883;17227:227;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;17495:187;;8721:26883;;;;;17017:189;17650:17;8721:26883;;;;;;17650:17;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17495:187;;8721:26883;17465:227;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;17733:191;;8721:26883;;;;;17017:189;17890:19;8721:26883;;;;;;17890:19;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17733:191;;8721:26883;17703:231;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;17975:199;;8721:26883;;;;;17017:189;18136:23;8721:26883;;;;;;18136:23;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17975:199;;8721:26883;17945:239;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;18225:187;;8721:26883;;;;;17017:189;18380:17;8721:26883;;;;;;18380:17;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18225:187;;8721:26883;18195:227;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;;;;;:::i;:::-;;;;;;;;;16453:29;17017:189;18463:187;;8721:26883;;;;;17017:189;18618:17;8721:26883;;;;;;18618:17;16453:29;8721:26883;;;16453:29;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18463:187;;8721:26883;18433:227;;;:::i;:::-;;;;;:::i;:::-;;8721:26883;;18700:42;;;;;;;;;;-1:-1:-1;;;;;18700:42:91;;;;;;;;;;;;;:::i;:::-;;;16453:29;18700:42;;;;;16294:2480;:::o;8721:26883::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17017:189;8721:26883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;28463:1;8721:26883;;;-1:-1:-1;8721:26883:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;779:22:61;-1:-1:-1;;540:42:1;;;;;8721:26883:91;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;8721:26883:91;;:::i;:::-;;695:118:61;8721:26883:91;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;8721:26883:91;;;;;;:::i;:::-;3110:2;3693:3;;-1:-1:-1;;;;;779:22:61;719:84;;480:2;;;719:84;;;8721:26883:91;;;;;695:118:61;;;779:22;695:118;;;480:2;;8721:26883:91;480:2:61;;;8721:26883:91;480:2:61;;8721:26883:91;480:2:61;;;;8721:26883:91;480:2:61;;;;;;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;8721:26883:91;;;;;:::i;:::-;438:1:61;3251:7:91;;779:22:61;837:51;;8721:26883:91;581:314:61;:::o;8721:26883:91:-;;;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;8721:26883:91;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8721:26883:91;;;;;;:::o;234:9:40:-;8721:26883:91;;;;;;:::i;:::-;234:9:40;8721:26883:91;;:::i;:::-;234:9:40;;;8721:26883:91;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;8721:26883:91;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;8721:26883:91;-1:-1:-1;;;;;234:9:40;;;;8721:26883:91;234:9:40;;;8721:26883:91;;;;234:9:40;;;;8721:26883:91;234:9:40;;;8721:26883:91;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;8721:26883:91;234:9:40;;8721:26883:91;;234:9:40;;8721:26883:91;234:9:40;:::o;8721:26883:91:-;;;;:::o;:::-;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;;33903:813;-1:-1:-1;;;;;8721:26883:91;;;;;;34081:38;;;;;8721:26883;;;;;;;;;;;34081:38;;34117:1;8721:26883;34117:1;34081:38;;;;;;;;;;8721:26883;34081:38;;;;;;;;;;;;;;33903:813;34212:64;;;;;;:::i;:::-;8721:26883;;;;;;;;;;;;;;;;;;;;;34319:25;;;;;;;;;;;;;33903:813;34376:9;;8721:26883;;;;;;34376:11;;;;8721:26883;;;;;34376:11;;;;;;8721:26883;;;;;;:::i;:::-;34376:11;;;;;;;;;;;;;;;;;33903:813;-1:-1:-1;8721:26883:91;;-1:-1:-1;;;34391:43:91;;8721:26883;;;;;;34391:43;;8721:26883;34391:43;;;;:::i;:::-;;;;;;;;;;;;8721:26883;34391:43;;;;;;;;33903:813;8721:26883;;;34391:52;;;;;;;;;;;;8721:26883;;;;;;:::i;:::-;34391:52;;;;;;;;;;;;33903:813;34376:67;;8721:26883;;34554:19;;;;34546:48;34604:46;34554:19;34660:49;34554:19;;;34546:48;:::i;8721:26883::-;;-1:-1:-1;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8721:26883:91;;;;;;-1:-1:-1;8721:26883:91;34391:52;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;34391:52:91;;;;;;;;;;8721:26883;;;;;;;;;;34391:43;;;;;;;;;;;;;;:::i;:::-;;;;;;8721:26883;;;;;;;;;34376:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;;;;34391:43:91;34376:11;;;;;;;;8721:26883;;;;;;;;;34319:25;;;;;;;;;;;;;;:::i;:::-;;;;;;8721:26883;;;;;;;;;34081:38;;;34212:64;34081:38;;:::i;:::-;;;;;8721:26883;;;;;;;;;34878:541;;8721:26883;;:::i;:::-;-1:-1:-1;35042:44:91;3737:10;;-1:-1:-1;;;;;8721:26883:91;;;-1:-1:-1;;;;;;3737:10:91;;;;;;;;35096:42;3737:10;;;;;;;;;8721:26883;;-1:-1:-1;;;35176:25:91;;35096:42;;-1:-1:-1;;;;8721:26883:91;;35176:25;;8721:26883;;35176:25;;;;;;;;;;;:55;:25;;;;;34878:541;-1:-1:-1;8721:26883:91;;-1:-1:-1;;;35176:55:91;;8721:26883;35176:40;;8721:26883;;;;;35176:25;:55;;;:::i;:::-;;;;;;;;;;;;;;;34878:541;8721:26883;;;;;;;;;;;;;;;35282:17;;;;;;;;;35176:25;35282:17;;8721:26883;;;;;;:::i;:::-;35282:17;;;;;;;;;;;;;;;;34878:541;8721:26883;;;;;;;;;;;35265:35;;35176:25;35265:35;;8721:26883;35265:35;;;;;;;;;;;34878:541;35319:9;;;8721:26883;35319:9;;;8721:26883;;;-1:-1:-1;;;;;35344:19:91;;;;;8721:26883;;35365:27;;;;8721:26883;;35394:17;;8721:26883;35311:101;;;;;34878:541;:::o;35265:35::-;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;;;;;;;-1:-1:-1;;;;;8721:26883:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;8721:26883:91;;;;;540:42:1;8721:26883:91;;;;;;;540:42:1;8721:26883:91;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;8721:26883:91;;;;;:::i;:::-;;;;;35265:35;;;;;;8721:26883;;;;;;;;;;;35282:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;8721:26883;;;;540:42:1;;;35282:17:91;;;;;;;;;8721:26883;;;;;;;;;35176:55;8721:26883;35176:55;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;8721:26883;;;;;;;;","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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"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":55676,"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":[55675],"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":[57060],"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":[58922],"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":[52888],"TestParams":[52695],"TestRegistry":[52759],"TestSubnetActor":[53052],"TestUtils":[57848],"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:35559: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":55676,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52531,"nodeType":"ImportDirective","src":"139:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52529,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"147:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52530,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"160:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52533,"nodeType":"ImportDirective","src":"212:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52532,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"220:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52535,"nodeType":"ImportDirective","src":"274:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"282:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52540,"nodeType":"ImportDirective","src":"331:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52536,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"339:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52537,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"349:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"369:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"382:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52542,"nodeType":"ImportDirective","src":"434:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52541,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"442:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"492:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52543,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"500:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"510:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"522:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"538:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"554:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"562:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"576:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"588:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"633:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52552,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"641:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"695:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"703:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"761:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52556,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"769:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"823:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52558,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"831:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"891:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52560,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"899:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"948:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"956:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1006:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52564,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1014:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1072:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52566,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1080:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1146:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52568,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1154:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1226:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52570,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1234:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1303:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52572,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1311:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1384:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52574,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1392:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1465:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52576,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1473:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1550:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52578,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1558:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1634:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":58923,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"1642:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1695:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52582,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1703:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"1778:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1786:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"1857:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52586,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1865:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"1952:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52588,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1960:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2033:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52590,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2041:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2115:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52592,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2123:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2187:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52594,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2195:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52597,"nodeType":"ImportDirective","src":"2270:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52596,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2278:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52599,"nodeType":"ImportDirective","src":"2350:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52598,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2358:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52601,"nodeType":"ImportDirective","src":"2422:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52600,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2430:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52603,"nodeType":"ImportDirective","src":"2490:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52602,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2498:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52605,"nodeType":"ImportDirective","src":"2560:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57849,"symbolAliases":[{"foreign":{"id":52604,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"2568:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52607,"nodeType":"ImportDirective","src":"2611:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57061,"symbolAliases":[{"foreign":{"id":52606,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"2619:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52695,"nodeType":"ContractDefinition","src":"2675:1194:91","nodes":[{"id":52614,"nodeType":"VariableDeclaration","src":"2701:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2717:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52608,"name":"uint64","nodeType":"ElementaryTypeName","src":"2701:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52610,"name":"uint64","nodeType":"ElementaryTypeName","src":"2734:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52609,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2742:3:91","memberName":"max","nodeType":"MemberAccess","src":"2729:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2751:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2768:20:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:91","typeDescriptions":{}}},"id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2848:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2864:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2848:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2889:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2896:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2913:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52624,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2956:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2971:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2956:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3001:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3009:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3025:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52630,"name":"uint64","nodeType":"ElementaryTypeName","src":"3009:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3053:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3066:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3082:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52633,"name":"uint64","nodeType":"ElementaryTypeName","src":"3066:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52638,"nodeType":"VariableDeclaration","src":"3118:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3134:16:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52636,"name":"string","nodeType":"ElementaryTypeName","src":"3118:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3153:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3168:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3183:7:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52639,"name":"bytes","nodeType":"ElementaryTypeName","src":"3168:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52640,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3193:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52644,"nodeType":"VariableDeclaration","src":"3210:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3227:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3264:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3281:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52645,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52653,"nodeType":"VariableDeclaration","src":"3319:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3336:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"3319:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368: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":52650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3360:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:91","typeDescriptions":{}}},"id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52659,"nodeType":"VariableDeclaration","src":"3377:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3394:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52654,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428: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":52656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3420:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:91","typeDescriptions":{}}},"id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3420:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3437:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3453:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52660,"name":"uint64","nodeType":"ElementaryTypeName","src":"3437:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52662,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3469:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3465:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52667,"nodeType":"VariableDeclaration","src":"3500:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3517:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3556:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3572:31:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52668,"name":"uint16","nodeType":"ElementaryTypeName","src":"3556:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3606:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52673,"nodeType":"VariableDeclaration","src":"3615:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3629:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52671,"name":"int8","nodeType":"ElementaryTypeName","src":"3615:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3651:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3659:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3675:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52674,"name":"uint64","nodeType":"ElementaryTypeName","src":"3659:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3702:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3719:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3745: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":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:91","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52688,"nodeType":"VariableDeclaration","src":"3753:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3770:24:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52683,"name":"address","nodeType":"ElementaryTypeName","src":"3753:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805: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":52685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3797:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:91","typeDescriptions":{}}},"id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3797:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52694,"nodeType":"VariableDeclaration","src":"3816:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3833:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52689,"name":"address","nodeType":"ElementaryTypeName","src":"3816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863: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":52691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:91","typeDescriptions":{}}},"id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52695],"name":"TestParams","nameLocation":"2684:10:91","scope":55676,"usedErrors":[]},{"id":52759,"nodeType":"ContractDefinition","src":"3871:824:91","nodes":[{"id":52702,"nodeType":"VariableDeclaration","src":"3919:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3928:28:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52700,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3919:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52701,"nodeType":"ArrayTypeName","src":"3919:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3962:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3971:34:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52703,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52704,"nodeType":"ArrayTypeName","src":"3962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"4011:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4020:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52706,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4011:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52707,"nodeType":"ArrayTypeName","src":"4011:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4049:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4058:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52709,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4049:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52710,"nodeType":"ArrayTypeName","src":"4049:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4088:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4110:15:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetRegistryDiamond","nameLocations":["4088:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4088:21:91"},"referencedDeclaration":36853,"src":"4088:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52717,"nodeType":"VariableDeclaration","src":"4131:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4149:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["4131:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4131:17:91"},"referencedDeclaration":37355,"src":"4131:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52720,"nodeType":"VariableDeclaration","src":"4169:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4185:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52719,"nodeType":"UserDefinedTypeName","pathNode":{"id":52718,"name":"DiamondCutFacet","nameLocations":["4169:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4169:15:91"},"referencedDeclaration":36918,"src":"4169:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52723,"nodeType":"VariableDeclaration","src":"4205:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4225:19:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52722,"nodeType":"UserDefinedTypeName","pathNode":{"id":52721,"name":"RegisterSubnetFacet","nameLocations":["4205:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4205:19:91"},"referencedDeclaration":52286,"src":"4205:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52726,"nodeType":"VariableDeclaration","src":"4250:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4268:25:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52725,"nodeType":"UserDefinedTypeName","pathNode":{"id":52724,"name":"SubnetGetterFacet","nameLocations":["4250:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4250:17:91"},"referencedDeclaration":52524,"src":"4250:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52758,"nodeType":"FunctionDefinition","src":"4300:393:91","nodes":[],"body":{"id":52757,"nodeType":"Block","src":"4314:379:91","nodes":[],"statements":[{"expression":{"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52729,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"4324:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4388: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":52730,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4355:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4355: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":52733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52735,"nodeType":"ExpressionStatement","src":"4324:86:91"},{"expression":{"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52736,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"4420:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4490: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":52737,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4457:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4457: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":52740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4457:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4420:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52742,"nodeType":"ExpressionStatement","src":"4420:90:91"},{"expression":{"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52743,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"4520:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4579: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":52744,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4546:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4562:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4546: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":52747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4520:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52749,"nodeType":"ExpressionStatement","src":"4520:77:91"},{"expression":{"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52750,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"4607:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4666: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":52751,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4633:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4649:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4633: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":52754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4607:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52756,"nodeType":"ExpressionStatement","src":"4607:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52727,"nodeType":"ParameterList","parameters":[],"src":"4311:2:91"},"returnParameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4314:0:91"},"scope":52759,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52696,"name":"Test","nameLocations":["3896:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3896:4:91"},"id":52697,"nodeType":"InheritanceSpecifier","src":"3896:4:91"},{"baseName":{"id":52698,"name":"TestParams","nameLocations":["3902:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"3902:10:91"},"id":52699,"nodeType":"InheritanceSpecifier","src":"3902:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3880:12:91","scope":55676,"usedErrors":[]},{"id":52888,"nodeType":"ContractDefinition","src":"4697:1625:91","nodes":[{"id":52766,"nodeType":"VariableDeclaration","src":"4749:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4758:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4749:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4749:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4793:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4802:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4793:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4793:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4837:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4846:31:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4837:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4837:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4883:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4892:30:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4883:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4883:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4929:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4938:18:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4929:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4929:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4962:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4971:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52780,"nodeType":"ArrayTypeName","src":"4962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4994:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5003:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4994:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52783,"nodeType":"ArrayTypeName","src":"4994:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"5030:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5039:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52785,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5030:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52786,"nodeType":"ArrayTypeName","src":"5030:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5062:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5071:16:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52788,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5062:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52789,"nodeType":"ArrayTypeName","src":"5062:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5094:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5109:14:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"GatewayDiamond","nameLocations":["5094:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5094:14:91"},"referencedDeclaration":36170,"src":"5094:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5129:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5149:9:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"GatewayManagerFacet","nameLocations":["5129:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5129:19:91"},"referencedDeclaration":38870,"src":"5129:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5164:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5183:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"GatewayGetterFacet","nameLocations":["5164:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5164:18:91"},"referencedDeclaration":38317,"src":"5164:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5197:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5216:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"CheckpointingFacet","nameLocations":["5197:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5197:18:91"},"referencedDeclaration":39870,"src":"5197:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5261:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"XnetMessagingFacet","nameLocations":["5242:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5242:18:91"},"referencedDeclaration":40144,"src":"5242:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5308:22:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"TopDownFinalityFacet","nameLocations":["5287:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5287:20:91"},"referencedDeclaration":40071,"src":"5287:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52811,"nodeType":"VariableDeclaration","src":"5336:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5356:21:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52810,"nodeType":"UserDefinedTypeName","pathNode":{"id":52809,"name":"BottomUpRouterFacet","nameLocations":["5336:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5336:19:91"},"referencedDeclaration":39601,"src":"5336:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52814,"nodeType":"VariableDeclaration","src":"5383:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5405:11:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52813,"nodeType":"UserDefinedTypeName","pathNode":{"id":52812,"name":"GatewayMessengerFacet","nameLocations":["5383:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5383:21:91"},"referencedDeclaration":39235,"src":"5383:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52817,"nodeType":"VariableDeclaration","src":"5422:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5438:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52816,"nodeType":"UserDefinedTypeName","pathNode":{"id":52815,"name":"DiamondCutFacet","nameLocations":["5422:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5422:15:91"},"referencedDeclaration":36918,"src":"5422:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52820,"nodeType":"VariableDeclaration","src":"5452:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5470:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52819,"nodeType":"UserDefinedTypeName","pathNode":{"id":52818,"name":"DiamondLoupeFacet","nameLocations":["5452:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5452:17:91"},"referencedDeclaration":37355,"src":"5452:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52887,"nodeType":"FunctionDefinition","src":"5485:835:91","nodes":[],"body":{"id":52886,"nodeType":"Block","src":"5499:821:91","nodes":[],"statements":[{"expression":{"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52823,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5509:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5574: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":52824,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5541:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5557:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5541: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":52827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5509:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52829,"nodeType":"ExpressionStatement","src":"5509:86:91"},{"expression":{"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5605:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5670: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":52831,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5637:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5653:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5637: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":52834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52836,"nodeType":"ExpressionStatement","src":"5605:86:91"},{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52837,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5701:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768: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":52838,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5735:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5751:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5735: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":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5701:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52843,"nodeType":"ExpressionStatement","src":"5701:90:91"},{"expression":{"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52844,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5801:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5867: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":52845,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5834:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5834: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":52848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5834:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5801:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52850,"nodeType":"ExpressionStatement","src":"5801:88:91"},{"expression":{"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52851,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"5900:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5953: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":52852,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5920:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5936:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5920: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":52855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5920:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5900:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52857,"nodeType":"ExpressionStatement","src":"5900:74:91"},{"expression":{"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52858,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"5984:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6038: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":52859,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6005:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6005: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":52862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5984:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52864,"nodeType":"ExpressionStatement","src":"5984:76:91"},{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52865,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"6070:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6126: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":52866,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6093:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6109:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6093: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":52869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6070:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52871,"nodeType":"ExpressionStatement","src":"6070:80:91"},{"expression":{"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52872,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"6160:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6213: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":52873,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6180:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6196:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6180: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":52876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6160:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52878,"nodeType":"ExpressionStatement","src":"6160:71:91"},{"expression":{"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52879,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"6241:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6293: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":52880,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6260:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6276:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6260: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":52883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6241:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52885,"nodeType":"ExpressionStatement","src":"6241:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52821,"nodeType":"ParameterList","parameters":[],"src":"5496:2:91"},"returnParameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5499:0:91"},"scope":52888,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52760,"name":"Test","nameLocations":["4726:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4726:4:91"},"id":52761,"nodeType":"InheritanceSpecifier","src":"4726:4:91"},{"baseName":{"id":52762,"name":"TestParams","nameLocations":["4732:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"4732:10:91"},"id":52763,"nodeType":"InheritanceSpecifier","src":"4732:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52888,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4706:16:91","scope":55676,"usedErrors":[]},{"id":53052,"nodeType":"ContractDefinition","src":"6324:2395:91","nodes":[{"id":52895,"nodeType":"VariableDeclaration","src":"6375:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6384:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52893,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6375:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52894,"nodeType":"ArrayTypeName","src":"6375:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52898,"nodeType":"VariableDeclaration","src":"6407:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6416:18:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52896,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6407:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52897,"nodeType":"ArrayTypeName","src":"6407:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52901,"nodeType":"VariableDeclaration","src":"6440:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"6449:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52899,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6440:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52900,"nodeType":"ArrayTypeName","src":"6440:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52904,"nodeType":"VariableDeclaration","src":"6472:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"6481:19:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6472:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52903,"nodeType":"ArrayTypeName","src":"6472:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52907,"nodeType":"VariableDeclaration","src":"6506:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"6515:23:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52905,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6506:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52906,"nodeType":"ArrayTypeName","src":"6506:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52910,"nodeType":"VariableDeclaration","src":"6544:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6553:24:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52908,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6544:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52909,"nodeType":"ArrayTypeName","src":"6544:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52913,"nodeType":"VariableDeclaration","src":"6583:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6592:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52911,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6583:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52912,"nodeType":"ArrayTypeName","src":"6583:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52916,"nodeType":"VariableDeclaration","src":"6615:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6624:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52914,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6615:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52915,"nodeType":"ArrayTypeName","src":"6615:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52919,"nodeType":"VariableDeclaration","src":"6648:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6667:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52918,"nodeType":"UserDefinedTypeName","pathNode":{"id":52917,"name":"SubnetActorDiamond","nameLocations":["6648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6648:18:91"},"referencedDeclaration":36615,"src":"6648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6682:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6706:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52921,"nodeType":"UserDefinedTypeName","pathNode":{"id":52920,"name":"SubnetActorManagerFacet","nameLocations":["6682:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"6682:23:91"},"referencedDeclaration":51946,"src":"6682:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6721:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"6737:6:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":52924,"nodeType":"UserDefinedTypeName","pathNode":{"id":52923,"name":"SubnetActorMock","nameLocations":["6721:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"6721:15:91"},"referencedDeclaration":58922,"src":"6721:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6749:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6772:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52927,"nodeType":"UserDefinedTypeName","pathNode":{"id":52926,"name":"SubnetActorGetterFacet","nameLocations":["6749:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"6749:22:91"},"referencedDeclaration":51235,"src":"6749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6786:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"6809:10:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52930,"nodeType":"UserDefinedTypeName","pathNode":{"id":52929,"name":"SubnetActorRewardFacet","nameLocations":["6786:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"6786:22:91"},"referencedDeclaration":52158,"src":"6786:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6825:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"6847:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorPauseFacet","nameLocations":["6825:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"6825:21:91"},"referencedDeclaration":51991,"src":"6825:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6861:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"6891:14:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorCheckpointingFacet","nameLocations":["6861:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"6861:29:91"},"referencedDeclaration":50577,"src":"6861:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"6912:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6928:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"DiamondCutFacet","nameLocations":["6912:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"6912:15:91"},"referencedDeclaration":36918,"src":"6912:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"6942:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6960:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"DiamondLoupeFacet","nameLocations":["6942:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"6942:17:91"},"referencedDeclaration":37355,"src":"6942:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53003,"nodeType":"FunctionDefinition","src":"6975:729:91","nodes":[],"body":{"id":53002,"nodeType":"Block","src":"6989:715:91","nodes":[],"statements":[{"expression":{"id":52951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52946,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"6999:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7052: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":52947,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7019:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7035:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7019: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":52950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6999:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52952,"nodeType":"ExpressionStatement","src":"6999:78:91"},{"expression":{"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52953,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"7087:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7141: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":52954,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7108:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7124:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7108: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":52957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7108:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7087:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52959,"nodeType":"ExpressionStatement","src":"7087:80:91"},{"expression":{"id":52965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52960,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"7177:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":52963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7230: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":52961,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7197:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7213:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7197: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":52964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7177:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52966,"nodeType":"ExpressionStatement","src":"7177:77:91"},{"expression":{"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52967,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"7264:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":52970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7319: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":52968,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7286:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7302:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7286: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":52971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7264:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52973,"nodeType":"ExpressionStatement","src":"7264:80:91"},{"expression":{"id":52979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52974,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"7354:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":52977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7413: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":52975,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7380:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7380: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":52978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7380:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7354:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52980,"nodeType":"ExpressionStatement","src":"7354:91:91"},{"expression":{"id":52986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52981,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"7455:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":52984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7515: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":52982,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7482:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7498:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7482: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":52985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7455:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52987,"nodeType":"ExpressionStatement","src":"7455:78:91"},{"expression":{"id":52993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52988,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"7543:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7596: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":52989,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7563:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7579:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7563: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":52992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7563:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7543:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52994,"nodeType":"ExpressionStatement","src":"7543:71:91"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52995,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"7624:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7677: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":52996,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7644:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7660:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7644: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":52999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7644:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7624:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53001,"nodeType":"ExpressionStatement","src":"7624:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52944,"nodeType":"ParameterList","parameters":[],"src":"6986:2:91"},"returnParameters":{"id":52945,"nodeType":"ParameterList","parameters":[],"src":"6989:0:91"},"scope":53052,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53051,"nodeType":"FunctionDefinition","src":"7710:1007:91","nodes":[],"body":{"id":53050,"nodeType":"Block","src":"7857:860:91","nodes":[],"statements":[{"assignments":[53013],"declarations":[{"constant":false,"id":53013,"mutability":"mutable","name":"native","nameLocation":"7887:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7867:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53012,"nodeType":"UserDefinedTypeName","pathNode":{"id":53011,"name":"SupplySource","nameLocations":["7867:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"7867:12:91"},"referencedDeclaration":50179,"src":"7867:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53017,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53014,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"7896:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7915:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"7896:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7896:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:56:91"},{"assignments":[53022],"declarations":[{"constant":false,"id":53022,"mutability":"mutable","name":"params","nameLocation":"7977:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7933:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53021,"nodeType":"UserDefinedTypeName","pathNode":{"id":53020,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7933:18:91","7952:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7933:36:91"},"referencedDeclaration":36253,"src":"7933:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53047,"initialValue":{"arguments":[{"arguments":[{"id":53026,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"8063:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8101: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":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8087: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":53027,"name":"address","nodeType":"ElementaryTypeName","src":"8091:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53028,"nodeType":"ArrayTypeName","src":"8091:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087: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":53025,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8047:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8057:4:91","8080:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8047:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53033,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53005,"src":"8135:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53034,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8162:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8176:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8162:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53036,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8225:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53037,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8279:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53038,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"8336:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"8395:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53040,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"8459:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53041,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52673,"src":"8516:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53042,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"8565:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53043,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"8616:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8631:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"8616:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53045,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53013,"src":"8669: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":53023,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7986:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8005:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7986:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8037:8:91","8119:14:91","8151:9:91","8200:23:91","8264:13:91","8315:19:91","8375:18:91","8436:21:91","8504:10:91","8549:14:91","8600:14:91","8655:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7986:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7933:753:91"},{"expression":{"id":53048,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53022,"src":"8704:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53010,"id":53049,"nodeType":"Return","src":"8697:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7719:35:91","parameters":{"id":53006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53005,"mutability":"mutable","name":"gw","nameLocation":"7772:2:91","nodeType":"VariableDeclaration","scope":53051,"src":"7764:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53004,"name":"address","nodeType":"ElementaryTypeName","src":"7764:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7754:26:91"},"returnParameters":{"id":53010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53051,"src":"7812:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53008,"nodeType":"UserDefinedTypeName","pathNode":{"id":53007,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7812:18:91","7831:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7812:36:91"},"referencedDeclaration":36253,"src":"7812:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7811:45:91"},"scope":53052,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52889,"name":"Test","nameLocations":["6352:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6352:4:91"},"id":52890,"nodeType":"InheritanceSpecifier","src":"6352:4:91"},{"baseName":{"id":52891,"name":"TestParams","nameLocations":["6358:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"6358:10:91"},"id":52892,"nodeType":"InheritanceSpecifier","src":"6358:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53052,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6333:15:91","scope":55676,"usedErrors":[]},{"id":55675,"nodeType":"ContractDefinition","src":"8721:26883:91","nodes":[{"id":53066,"nodeType":"UsingForDirective","src":"8825:34:91","nodes":[],"global":false,"libraryName":{"id":53063,"name":"SubnetIDHelper","nameLocations":["8831:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"8831:14:91"},"typeName":{"id":53065,"nodeType":"UserDefinedTypeName","pathNode":{"id":53064,"name":"SubnetID","nameLocations":["8850:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"8850:8:91"},"referencedDeclaration":50030,"src":"8850:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53070,"nodeType":"UsingForDirective","src":"8864:42:91","nodes":[],"global":false,"libraryName":{"id":53067,"name":"SupplySourceHelper","nameLocations":["8870:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"8870:18:91"},"typeName":{"id":53069,"nodeType":"UserDefinedTypeName","pathNode":{"id":53068,"name":"SupplySource","nameLocations":["8893:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8893:12:91"},"referencedDeclaration":50179,"src":"8893:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53074,"nodeType":"UsingForDirective","src":"8911:34:91","nodes":[],"global":false,"libraryName":{"id":53071,"name":"CrossMsgHelper","nameLocations":["8917:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"8917:14:91"},"typeName":{"id":53073,"nodeType":"UserDefinedTypeName","pathNode":{"id":53072,"name":"CrossMsg","nameLocations":["8936:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"8936:8:91"},"referencedDeclaration":49927,"src":"8936:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53078,"nodeType":"UsingForDirective","src":"8950:40:91","nodes":[],"global":false,"libraryName":{"id":53075,"name":"StorableMsgHelper","nameLocations":["8956:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"8956:17:91"},"typeName":{"id":53077,"nodeType":"UserDefinedTypeName","pathNode":{"id":53076,"name":"StorableMsg","nameLocations":["8978:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"8978:11:91"},"referencedDeclaration":49944,"src":"8978:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53082,"nodeType":"UsingForDirective","src":"8995:38:91","nodes":[],"global":false,"libraryName":{"id":53079,"name":"FvmAddressHelper","nameLocations":["9001:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9001:16:91"},"typeName":{"id":53081,"nodeType":"UserDefinedTypeName","pathNode":{"id":53080,"name":"FvmAddress","nameLocations":["9022:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9022:10:91"},"referencedDeclaration":49951,"src":"9022:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53086,"nodeType":"EventDefinition","src":"9039:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9045:21:91","parameters":{"id":53085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53084,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9083:21:91","nodeType":"VariableDeclaration","scope":53086,"src":"9067:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9066:39:91"}},{"id":53090,"nodeType":"FunctionDefinition","src":"9112:16:91","nodes":[],"body":{"id":53089,"nodeType":"Block","src":"9126:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53087,"nodeType":"ParameterList","parameters":[],"src":"9123:2:91"},"returnParameters":{"id":53088,"nodeType":"ParameterList","parameters":[],"src":"9126:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53292,"nodeType":"FunctionDefinition","src":"9134:1732:91","nodes":[],"body":{"id":53291,"nodeType":"Block","src":"9166:1700:91","nodes":[],"statements":[{"assignments":[53097],"declarations":[{"constant":false,"id":53097,"mutability":"mutable","name":"path","nameLocation":"9193:4:91","nodeType":"VariableDeclaration","scope":53291,"src":"9176:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53095,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53096,"nodeType":"ArrayTypeName","src":"9176:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53103,"initialValue":{"arguments":[{"hexValue":"31","id":53101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9214: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":53100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9200: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":53098,"name":"address","nodeType":"ElementaryTypeName","src":"9204:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53099,"nodeType":"ArrayTypeName","src":"9204:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9176:40:91"},{"expression":{"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53104,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53097,"src":"9226:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53106,"indexExpression":{"hexValue":"30","id":53105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231: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":"9226:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53107,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"9236:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9226:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53109,"nodeType":"ExpressionStatement","src":"9226:25:91"},{"assignments":[53114],"declarations":[{"constant":false,"id":53114,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9344:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"9304:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53113,"nodeType":"UserDefinedTypeName","pathNode":{"id":53112,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9304:14:91","9319:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9304:32:91"},"referencedDeclaration":35883,"src":"9304:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53117,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53115,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53328,"src":"9366:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9366:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9304:84:91"},{"expression":{"id":53122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9398:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53120,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53114,"src":"9436: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":53119,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"9415: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":53121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9415:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9398:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53123,"nodeType":"ExpressionStatement","src":"9398:58:91"},{"expression":{"id":53131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53124,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9467:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53128,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9505:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9497:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53126,"name":"address","nodeType":"ElementaryTypeName","src":"9497:7:91","typeDescriptions":{}}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53125,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9478:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9467:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53132,"nodeType":"ExpressionStatement","src":"9467:54:91"},{"expression":{"id":53140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53133,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9531:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53137,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9571:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9563:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9563:7:91","typeDescriptions":{}}},"id":53138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9563:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53134,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9543:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9531:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53141,"nodeType":"ExpressionStatement","src":"9531:56:91"},{"expression":{"id":53149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53142,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9597:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9647:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9639:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53144,"name":"address","nodeType":"ElementaryTypeName","src":"9639:7:91","typeDescriptions":{}}},"id":53147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9639:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53143,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9620:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9597:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53150,"nodeType":"ExpressionStatement","src":"9597:66:91"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53151,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9673:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9723:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9715:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53153,"name":"address","nodeType":"ElementaryTypeName","src":"9715:7:91","typeDescriptions":{}}},"id":53156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53152,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9696:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9673:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53159,"nodeType":"ExpressionStatement","src":"9673:66:91"},{"expression":{"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53160,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53164,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9803:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9795:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53162,"name":"address","nodeType":"ElementaryTypeName","src":"9795:7:91","typeDescriptions":{}}},"id":53165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53161,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9774:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9749:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53168,"nodeType":"ExpressionStatement","src":"9749:70:91"},{"expression":{"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53169,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52811,"src":"9829:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53173,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9881:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9873:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53171,"name":"address","nodeType":"ElementaryTypeName","src":"9873:7:91","typeDescriptions":{}}},"id":53174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53170,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9853:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9853:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9829:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53177,"nodeType":"ExpressionStatement","src":"9829:68:91"},{"expression":{"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53178,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"9907:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53182,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9951:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9943:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53180,"name":"address","nodeType":"ElementaryTypeName","src":"9943:7:91","typeDescriptions":{}}},"id":53183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9943:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53179,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9921:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9921:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9907:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53186,"nodeType":"ExpressionStatement","src":"9907:60:91"},{"expression":{"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53187,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"9977:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53191,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10014:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10006:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53189,"name":"address","nodeType":"ElementaryTypeName","src":"10006:7:91","typeDescriptions":{}}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10006:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53188,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9988:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9988:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9977:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53195,"nodeType":"ExpressionStatement","src":"9977:53:91"},{"expression":{"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53196,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"10040:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53200,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10075:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53198,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:91","typeDescriptions":{}}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10067:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53197,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10051:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10051:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10040:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53204,"nodeType":"ExpressionStatement","src":"10040:51:91"},{"assignments":[53209],"declarations":[{"constant":false,"id":53209,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10200:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"10156:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53208,"nodeType":"UserDefinedTypeName","pathNode":{"id":53207,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10156:18:91","10175:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10156:36:91"},"referencedDeclaration":36253,"src":"10156:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53216,"initialValue":{"arguments":[{"arguments":[{"id":53213,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10271:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53211,"name":"address","nodeType":"ElementaryTypeName","src":"10271:7:91","typeDescriptions":{}}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10271:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53210,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"10222: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":53215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10222:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10156:148:91"},{"expression":{"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10315:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53219,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53209,"src":"10345: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":53218,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":53911,"src":"10327: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":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10315:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53222,"nodeType":"ExpressionStatement","src":"10315:50:91"},{"expression":{"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53223,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"10375:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53227,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10419:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10411:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53225,"name":"address","nodeType":"ElementaryTypeName","src":"10411:7:91","typeDescriptions":{}}},"id":53228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10411:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53224,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"10387:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10387:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"10375:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53231,"nodeType":"ExpressionStatement","src":"10375:55:91"},{"expression":{"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53232,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"10440:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53236,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10482:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53234,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:91","typeDescriptions":{}}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53233,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"10451:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10451:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"10440:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53240,"nodeType":"ExpressionStatement","src":"10440:53:91"},{"expression":{"id":53248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53241,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10503:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53245,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10544:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10536:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"10536:7:91","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10536:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"10514:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10514:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"10503:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53249,"nodeType":"ExpressionStatement","src":"10503:52:91"},{"expression":{"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"10565:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10609:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10601:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53252,"name":"address","nodeType":"ElementaryTypeName","src":"10601:7:91","typeDescriptions":{}}},"id":53255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10601:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53251,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"10578:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10578:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"10565:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53258,"nodeType":"ExpressionStatement","src":"10565:55:91"},{"expression":{"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53259,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10630:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53263,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10685:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53261,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:91","typeDescriptions":{}}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53260,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"10647:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"10630:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53267,"nodeType":"ExpressionStatement","src":"10630:66:91"},{"expression":{"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53268,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10706:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53272,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10743:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10735:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53270,"name":"address","nodeType":"ElementaryTypeName","src":"10735:7:91","typeDescriptions":{}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53269,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10717:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10717:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10706:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53276,"nodeType":"ExpressionStatement","src":"10706:48:91"},{"expression":{"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53277,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"10764:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53281,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10799:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53279,"name":"address","nodeType":"ElementaryTypeName","src":"10791:7:91","typeDescriptions":{}}},"id":53282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53278,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10775:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10764:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53285,"nodeType":"ExpressionStatement","src":"10764:46:91"},{"expression":{"arguments":[{"id":53287,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52694,"src":"10834:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855: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":53286,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"10821:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"10821:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9143:5:91","parameters":{"id":53091,"nodeType":"ParameterList","parameters":[],"src":"9148:2:91"},"returnParameters":{"id":53092,"nodeType":"ParameterList","parameters":[],"src":"9166:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53328,"nodeType":"FunctionDefinition","src":"10872:606:91","nodes":[],"body":{"id":53327,"nodeType":"Block","src":"10976:502:91","nodes":[],"statements":[{"assignments":[53302],"declarations":[{"constant":false,"id":53302,"mutability":"mutable","name":"params","nameLocation":"11026:6:91","nodeType":"VariableDeclaration","scope":53327,"src":"10986:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53301,"nodeType":"UserDefinedTypeName","pathNode":{"id":53300,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10986:14:91","11001:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10986:32:91"},"referencedDeclaration":35883,"src":"10986:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53324,"initialValue":{"arguments":[{"arguments":[{"id":53306,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"11111:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11149: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":53309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11135: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":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11139:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53308,"nodeType":"ArrayTypeName","src":"11139:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11135: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":53305,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"11095:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11105:4:91","11128:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"11095:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53313,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"11188:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53314,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"11235:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53315,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"11290:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":53320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11366: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":53319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11350: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":53317,"nodeType":"UserDefinedTypeName","pathNode":{"id":53316,"name":"Validator","nameLocations":["11354:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"11354:9:91"},"referencedDeclaration":50164,"src":"11354:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":53318,"nodeType":"ArrayTypeName","src":"11354:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11350:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":53322,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"11405: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":53303,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"11035:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11050:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"11035:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11082:11:91","11167:19:91","11227:6:91","11270:18:91","11331:17:91","11382:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"11035:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10986:461:91"},{"expression":{"id":53325,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53302,"src":"11465:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":53297,"id":53326,"nodeType":"Return","src":"11458:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"10881:20:91","parameters":{"id":53293,"nodeType":"ParameterList","parameters":[],"src":"10901:2:91"},"returnParameters":{"id":53297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53328,"src":"10935:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10935:14:91","10950:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10935:32:91"},"referencedDeclaration":35883,"src":"10935:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10934:41:91"},"scope":55675,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":53587,"nodeType":"FunctionDefinition","src":"11484:3185:91","nodes":[],"body":{"id":53586,"nodeType":"Block","src":"11594:3075:91","nodes":[],"statements":[{"assignments":[53339],"declarations":[{"constant":false,"id":53339,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11623:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11604:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"CheckpointingFacet","nameLocations":["11604:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11604:18:91"},"referencedDeclaration":39870,"src":"11604:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53344,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53341,"nodeType":"UserDefinedTypeName","pathNode":{"id":53340,"name":"CheckpointingFacet","nameLocations":["11648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11648:18:91"},"referencedDeclaration":39870,"src":"11648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11604:64:91"},{"assignments":[53347],"declarations":[{"constant":false,"id":53347,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11697:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11678:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53346,"nodeType":"UserDefinedTypeName","pathNode":{"id":53345,"name":"XnetMessagingFacet","nameLocations":["11678:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11678:18:91"},"referencedDeclaration":40144,"src":"11678:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11718:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53349,"nodeType":"UserDefinedTypeName","pathNode":{"id":53348,"name":"XnetMessagingFacet","nameLocations":["11722:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11722:18:91"},"referencedDeclaration":40144,"src":"11722:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11718:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11678:64:91"},{"assignments":[53355],"declarations":[{"constant":false,"id":53355,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11773:20:91","nodeType":"VariableDeclaration","scope":53586,"src":"11752:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53354,"nodeType":"UserDefinedTypeName","pathNode":{"id":53353,"name":"TopDownFinalityFacet","nameLocations":["11752:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11752:20:91"},"referencedDeclaration":40071,"src":"11752:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53360,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11796:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53357,"nodeType":"UserDefinedTypeName","pathNode":{"id":53356,"name":"TopDownFinalityFacet","nameLocations":["11800:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11800:20:91"},"referencedDeclaration":40071,"src":"11800:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11796:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11752:70:91"},{"assignments":[53363],"declarations":[{"constant":false,"id":53363,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11852:19:91","nodeType":"VariableDeclaration","scope":53586,"src":"11832:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53362,"nodeType":"UserDefinedTypeName","pathNode":{"id":53361,"name":"BottomUpRouterFacet","nameLocations":["11832:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11832:19:91"},"referencedDeclaration":39601,"src":"11832:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53368,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11874:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53365,"nodeType":"UserDefinedTypeName","pathNode":{"id":53364,"name":"BottomUpRouterFacet","nameLocations":["11878:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11878:19:91"},"referencedDeclaration":39601,"src":"11878:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11874:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11832:67:91"},{"assignments":[53371],"declarations":[{"constant":false,"id":53371,"mutability":"mutable","name":"manager","nameLocation":"11930:7:91","nodeType":"VariableDeclaration","scope":53586,"src":"11910:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53370,"nodeType":"UserDefinedTypeName","pathNode":{"id":53369,"name":"GatewayManagerFacet","nameLocations":["11910:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11910:19:91"},"referencedDeclaration":38870,"src":"11910:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11940:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53373,"nodeType":"UserDefinedTypeName","pathNode":{"id":53372,"name":"GatewayManagerFacet","nameLocations":["11944:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11944:19:91"},"referencedDeclaration":38870,"src":"11944:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11940:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11910:55:91"},{"assignments":[53379],"declarations":[{"constant":false,"id":53379,"mutability":"mutable","name":"getter","nameLocation":"11994:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"11975:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53378,"nodeType":"UserDefinedTypeName","pathNode":{"id":53377,"name":"GatewayGetterFacet","nameLocations":["11975:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11975:18:91"},"referencedDeclaration":38317,"src":"11975:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12003:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53381,"nodeType":"UserDefinedTypeName","pathNode":{"id":53380,"name":"GatewayGetterFacet","nameLocations":["12007:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12007:18:91"},"referencedDeclaration":38317,"src":"12007:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11975:52:91"},{"assignments":[53387],"declarations":[{"constant":false,"id":53387,"mutability":"mutable","name":"messenger","nameLocation":"12059:9:91","nodeType":"VariableDeclaration","scope":53586,"src":"12037:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53386,"nodeType":"UserDefinedTypeName","pathNode":{"id":53385,"name":"GatewayMessengerFacet","nameLocations":["12037:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12037:21:91"},"referencedDeclaration":39235,"src":"12037:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12071:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53389,"nodeType":"UserDefinedTypeName","pathNode":{"id":53388,"name":"GatewayMessengerFacet","nameLocations":["12075:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12075:21:91"},"referencedDeclaration":39235,"src":"12075:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12071:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12037:61:91"},{"assignments":[53395],"declarations":[{"constant":false,"id":53395,"mutability":"mutable","name":"cutter","nameLocation":"12124:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12108:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53394,"nodeType":"UserDefinedTypeName","pathNode":{"id":53393,"name":"DiamondCutFacet","nameLocations":["12108:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12108:15:91"},"referencedDeclaration":36918,"src":"12108:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53400,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12133:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53397,"nodeType":"UserDefinedTypeName","pathNode":{"id":53396,"name":"DiamondCutFacet","nameLocations":["12137:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12137:15:91"},"referencedDeclaration":36918,"src":"12137:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12133:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12108:46:91"},{"assignments":[53403],"declarations":[{"constant":false,"id":53403,"mutability":"mutable","name":"louper","nameLocation":"12182:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12164:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53402,"nodeType":"UserDefinedTypeName","pathNode":{"id":53401,"name":"DiamondLoupeFacet","nameLocations":["12164:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12164:17:91"},"referencedDeclaration":37355,"src":"12164:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53408,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12191:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53405,"nodeType":"UserDefinedTypeName","pathNode":{"id":53404,"name":"DiamondLoupeFacet","nameLocations":["12195:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12195:17:91"},"referencedDeclaration":37355,"src":"12195:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12191:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12164:50:91"},{"assignments":[53414],"declarations":[{"constant":false,"id":53414,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12252:12:91","nodeType":"VariableDeclaration","scope":53586,"src":"12225: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":53412,"nodeType":"UserDefinedTypeName","pathNode":{"id":53411,"name":"IDiamond.FacetCut","nameLocations":["12225:8:91","12234:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12225:17:91"},"referencedDeclaration":40159,"src":"12225:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53413,"nodeType":"ArrayTypeName","src":"12225:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53421,"initialValue":{"arguments":[{"hexValue":"39","id":53419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12291: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":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12267: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":53416,"nodeType":"UserDefinedTypeName","pathNode":{"id":53415,"name":"IDiamond.FacetCut","nameLocations":["12271:8:91","12280:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12271:17:91"},"referencedDeclaration":40159,"src":"12271:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53417,"nodeType":"ArrayTypeName","src":"12271:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267: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":"12225:68:91"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53422,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12304:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53424,"indexExpression":{"hexValue":"30","id":53423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317: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":"12304:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53429,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53339,"src":"12394:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12386:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53427,"name":"address","nodeType":"ElementaryTypeName","src":"12386:7:91","typeDescriptions":{}}},"id":53430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53431,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12439:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12448:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12439:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12463:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12439:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53434,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12503: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":53425,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12336:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12345:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12336:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12372:12:91","12431:6:91","12484:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12336:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12322:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12304:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53438,"nodeType":"ExpressionStatement","src":"12304:253:91"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53439,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12568:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53441,"indexExpression":{"hexValue":"36","id":53440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12581: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":"12568:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53446,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53347,"src":"12658:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12650:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53444,"name":"address","nodeType":"ElementaryTypeName","src":"12650:7:91","typeDescriptions":{}}},"id":53447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12650:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53448,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12703:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12712:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12703:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12727:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12703:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53451,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12767: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":53442,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12600:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12609:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12600:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12636:12:91","12695:6:91","12748:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12600:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12586:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12568:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53455,"nodeType":"ExpressionStatement","src":"12568:253:91"},{"expression":{"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12832:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53458,"indexExpression":{"hexValue":"37","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845: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":"12832:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53463,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53355,"src":"12922:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12914:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53461,"name":"address","nodeType":"ElementaryTypeName","src":"12914:7:91","typeDescriptions":{}}},"id":53464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12914:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12969:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12978:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12969:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12993:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12969:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53468,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13033: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":53459,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12864:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12873:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12864:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12900:12:91","12961:6:91","13014:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12864:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12850:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12832:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53472,"nodeType":"ExpressionStatement","src":"12832:257:91"},{"expression":{"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53473,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13100:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53475,"indexExpression":{"hexValue":"38","id":53474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113: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":"13100:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53480,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53363,"src":"13190:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13182:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53478,"name":"address","nodeType":"ElementaryTypeName","src":"13182:7:91","typeDescriptions":{}}},"id":53481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13182:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13236:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13245:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13236:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13260:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13236:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53485,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13300: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":53476,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13132:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13141:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13132:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13168:12:91","13228:6:91","13281:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13132:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13118:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13100:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53489,"nodeType":"ExpressionStatement","src":"13100:255:91"},{"expression":{"id":53505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53490,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13366:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53492,"indexExpression":{"hexValue":"31","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379: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":"13366:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53497,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53371,"src":"13456:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13448:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53495,"name":"address","nodeType":"ElementaryTypeName","src":"13448:7:91","typeDescriptions":{}}},"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13448:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13490:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13499:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13490:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13514:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13490:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53502,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13554: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":53493,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13398:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13407:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13398:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13434:12:91","13482:6:91","13535:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13398:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13384:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13366:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53506,"nodeType":"ExpressionStatement","src":"13366:231:91"},{"expression":{"id":53522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53507,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13608:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53509,"indexExpression":{"hexValue":"32","id":53508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621: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":"13608:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53514,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53379,"src":"13698:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13690:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53512,"name":"address","nodeType":"ElementaryTypeName","src":"13690:7:91","typeDescriptions":{}}},"id":53515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13731:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13740:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13731:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13755:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13731:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53519,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13795: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":53510,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13640:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13649:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13640:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13676:12:91","13723:6:91","13776:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13640:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13626:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13608:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53523,"nodeType":"ExpressionStatement","src":"13608:229:91"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53524,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13848:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53526,"indexExpression":{"hexValue":"33","id":53525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13861: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":"13848:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53531,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53387,"src":"13938:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13930:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53529,"name":"address","nodeType":"ElementaryTypeName","src":"13930:7:91","typeDescriptions":{}}},"id":53532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13930:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53533,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13974:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13983:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13974:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13998:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13974:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53536,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"14038: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":53527,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13880:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13889:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13880:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13916:12:91","13966:6:91","14019:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13880:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13866:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13848:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53540,"nodeType":"ExpressionStatement","src":"13848:235:91"},{"expression":{"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53541,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14094:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53543,"indexExpression":{"hexValue":"34","id":53542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107: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":"14094:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53548,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53403,"src":"14184:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14176:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53546,"name":"address","nodeType":"ElementaryTypeName","src":"14176:7:91","typeDescriptions":{}}},"id":53549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14176:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53550,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14217:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14226:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14217:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14241:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14217:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53553,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"14281: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":53544,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:91","14209:6:91","14262:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14094:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53557,"nodeType":"ExpressionStatement","src":"14094:228:91"},{"expression":{"id":53573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53558,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14333:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53560,"indexExpression":{"hexValue":"35","id":53559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346: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":"14333:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53565,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53395,"src":"14423:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14415:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53563,"name":"address","nodeType":"ElementaryTypeName","src":"14415:7:91","typeDescriptions":{}}},"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14415:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53567,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14456:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14456:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14480:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14456:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53570,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"14520: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":53561,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14365:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14365:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14401:12:91","14448:6:91","14501:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14365:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14351:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14333:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53574,"nodeType":"ExpressionStatement","src":"14333:229:91"},{"expression":{"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53575,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14573:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53579,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14609:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53580,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"14623: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":53578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14590: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":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"GatewayDiamond","nameLocations":["14594:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14594:14:91"},"referencedDeclaration":36170,"src":"14594:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14590:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14573:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53583,"nodeType":"ExpressionStatement","src":"14573:57:91"},{"expression":{"id":53584,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14648:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53336,"id":53585,"nodeType":"Return","src":"14641:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11493:20:91","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53331,"mutability":"mutable","name":"params","nameLocation":"11554:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"11514:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53330,"nodeType":"UserDefinedTypeName","pathNode":{"id":53329,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11514:14:91","11529:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11514:32:91"},"referencedDeclaration":35883,"src":"11514:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11513:48:91"},"returnParameters":{"id":53336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53587,"src":"11578:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"GatewayDiamond","nameLocations":["11578:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11578:14:91"},"referencedDeclaration":36170,"src":"11578:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11577:16:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53701,"nodeType":"FunctionDefinition","src":"14675:1613:91","nodes":[],"body":{"id":53700,"nodeType":"Block","src":"14951:1337:91","nodes":[],"statements":[{"assignments":[53611],"declarations":[{"constant":false,"id":53611,"mutability":"mutable","name":"diamondCut","nameLocation":"14988:10:91","nodeType":"VariableDeclaration","scope":53700,"src":"14961: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":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"IDiamond.FacetCut","nameLocations":["14961:8:91","14970:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14961:17:91"},"referencedDeclaration":40159,"src":"14961:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53610,"nodeType":"ArrayTypeName","src":"14961:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53618,"initialValue":{"arguments":[{"hexValue":"35","id":53616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15025: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":53615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15001: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":53613,"nodeType":"UserDefinedTypeName","pathNode":{"id":53612,"name":"IDiamond.FacetCut","nameLocations":["15005:8:91","15014:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15005:17:91"},"referencedDeclaration":40159,"src":"15005:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53614,"nodeType":"ArrayTypeName","src":"15005:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15001: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":"14961:66:91"},{"expression":{"id":53631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53619,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15038:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53621,"indexExpression":{"hexValue":"30","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15049: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":"15038:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53624,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53592,"src":"15118:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53625,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15150:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15159:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15150:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15174:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15150:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53628,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"15214: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":53622,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15068:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15077:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15068:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15104:12:91","15142:6:91","15195:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15068:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15054:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15038:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53632,"nodeType":"ExpressionStatement","src":"15038:218:91"},{"expression":{"id":53645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53633,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15267:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53635,"indexExpression":{"hexValue":"31","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15278: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":"15267:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53638,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15347:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53639,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15380:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15389:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15380:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15404:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15380:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53642,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"15444: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":53636,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15297:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15306:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15297:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15333:12:91","15372:6:91","15425:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15297:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15283:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15267:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53646,"nodeType":"ExpressionStatement","src":"15267:220:91"},{"expression":{"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53647,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15498:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53649,"indexExpression":{"hexValue":"32","id":53648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15509: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":"15498:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53652,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53596,"src":"15578:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53653,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15610:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15619:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15610:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15634:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15610:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53656,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"15674: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":53650,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15528:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15537:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15528:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15564:12:91","15602:6:91","15655:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15528:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15514:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15498:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53660,"nodeType":"ExpressionStatement","src":"15498:218:91"},{"expression":{"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53661,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15727:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53663,"indexExpression":{"hexValue":"33","id":53662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15738: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":"15727:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53666,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53598,"src":"15807:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53667,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15841:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15850:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15841:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15865:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15841:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53670,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"15905: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":53664,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15757:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15766:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15757:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15793:12:91","15833:6:91","15886:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15757:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15743:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15727:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53674,"nodeType":"ExpressionStatement","src":"15727:222:91"},{"expression":{"id":53687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15960:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53677,"indexExpression":{"hexValue":"34","id":53676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971: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":"15960:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53680,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53600,"src":"16040:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53681,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16078:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16078:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16102:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16078:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53684,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"16142: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":53678,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15990:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15990:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16026:12:91","16070:6:91","16123:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15990:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15976:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15960:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53688,"nodeType":"ExpressionStatement","src":"15960:230:91"},{"expression":{"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53689,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16201:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53693,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"16236:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53694,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"16248: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":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16213: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":53691,"nodeType":"UserDefinedTypeName","pathNode":{"id":53690,"name":"SubnetActorDiamond","nameLocations":["16217:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16217:18:91"},"referencedDeclaration":36615,"src":"16217:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16201:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53697,"nodeType":"ExpressionStatement","src":"16201:54:91"},{"expression":{"id":53698,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16272:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53605,"id":53699,"nodeType":"Return","src":"16265:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14684:35:91","parameters":{"id":53601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53590,"mutability":"mutable","name":"params","nameLocation":"14773:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14729:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14729:18:91","14748:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14729:36:91"},"referencedDeclaration":36253,"src":"14729:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53592,"mutability":"mutable","name":"getter","nameLocation":"14797:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14789:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53591,"name":"address","nodeType":"ElementaryTypeName","src":"14789:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53594,"mutability":"mutable","name":"manager","nameLocation":"14821:7:91","nodeType":"VariableDeclaration","scope":53701,"src":"14813:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53593,"name":"address","nodeType":"ElementaryTypeName","src":"14813:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53596,"mutability":"mutable","name":"pauser","nameLocation":"14846:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14838:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53595,"name":"address","nodeType":"ElementaryTypeName","src":"14838:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53598,"mutability":"mutable","name":"rewarder","nameLocation":"14870:8:91","nodeType":"VariableDeclaration","scope":53701,"src":"14862:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53597,"name":"address","nodeType":"ElementaryTypeName","src":"14862:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53600,"mutability":"mutable","name":"checkpointer","nameLocation":"14896:12:91","nodeType":"VariableDeclaration","scope":53701,"src":"14888:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53599,"name":"address","nodeType":"ElementaryTypeName","src":"14888:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14719:195:91"},"returnParameters":{"id":53605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53701,"src":"14931:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53603,"nodeType":"UserDefinedTypeName","pathNode":{"id":53602,"name":"SubnetActorDiamond","nameLocations":["14931:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14931:18:91"},"referencedDeclaration":36615,"src":"14931:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14930:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53911,"nodeType":"FunctionDefinition","src":"16294:2480:91","nodes":[],"body":{"id":53910,"nodeType":"Block","src":"16409:2365:91","nodes":[],"statements":[{"assignments":[53712],"declarations":[{"constant":false,"id":53712,"mutability":"mutable","name":"manager","nameLocation":"16443:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"16419:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53711,"nodeType":"UserDefinedTypeName","pathNode":{"id":53710,"name":"SubnetActorManagerFacet","nameLocations":["16419:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16419:23:91"},"referencedDeclaration":51946,"src":"16419:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16453:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"SubnetActorManagerFacet","nameLocations":["16457:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16457:23:91"},"referencedDeclaration":51946,"src":"16457:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16419:63:91"},{"assignments":[53720],"declarations":[{"constant":false,"id":53720,"mutability":"mutable","name":"getter","nameLocation":"16515:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16492:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53719,"nodeType":"UserDefinedTypeName","pathNode":{"id":53718,"name":"SubnetActorGetterFacet","nameLocations":["16492:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16492:22:91"},"referencedDeclaration":51235,"src":"16492:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16524:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53722,"nodeType":"UserDefinedTypeName","pathNode":{"id":53721,"name":"SubnetActorGetterFacet","nameLocations":["16528:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16528:22:91"},"referencedDeclaration":51235,"src":"16528:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16524:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16492:60:91"},{"assignments":[53728],"declarations":[{"constant":false,"id":53728,"mutability":"mutable","name":"pauser","nameLocation":"16584:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16562:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53727,"nodeType":"UserDefinedTypeName","pathNode":{"id":53726,"name":"SubnetActorPauseFacet","nameLocations":["16562:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16562:21:91"},"referencedDeclaration":51991,"src":"16562:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16593:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53730,"nodeType":"UserDefinedTypeName","pathNode":{"id":53729,"name":"SubnetActorPauseFacet","nameLocations":["16597:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16597:21:91"},"referencedDeclaration":51991,"src":"16597:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16593:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16562:58:91"},{"assignments":[53736],"declarations":[{"constant":false,"id":53736,"mutability":"mutable","name":"rewarder","nameLocation":"16653:8:91","nodeType":"VariableDeclaration","scope":53910,"src":"16630:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53735,"nodeType":"UserDefinedTypeName","pathNode":{"id":53734,"name":"SubnetActorRewardFacet","nameLocations":["16630:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16630:22:91"},"referencedDeclaration":52158,"src":"16630:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16664:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53738,"nodeType":"UserDefinedTypeName","pathNode":{"id":53737,"name":"SubnetActorRewardFacet","nameLocations":["16668:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16668:22:91"},"referencedDeclaration":52158,"src":"16668:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16664:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16630:62:91"},{"assignments":[53744],"declarations":[{"constant":false,"id":53744,"mutability":"mutable","name":"checkpointer","nameLocation":"16732:12:91","nodeType":"VariableDeclaration","scope":53910,"src":"16702:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"SubnetActorCheckpointingFacet","nameLocations":["16702:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16702:29:91"},"referencedDeclaration":50577,"src":"16702:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53749,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16747:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53746,"nodeType":"UserDefinedTypeName","pathNode":{"id":53745,"name":"SubnetActorCheckpointingFacet","nameLocations":["16751:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16751:29:91"},"referencedDeclaration":50577,"src":"16751:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16702:80:91"},{"assignments":[53752],"declarations":[{"constant":false,"id":53752,"mutability":"mutable","name":"louper","nameLocation":"16811:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16793:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53751,"nodeType":"UserDefinedTypeName","pathNode":{"id":53750,"name":"DiamondLoupeFacet","nameLocations":["16793:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16793:17:91"},"referencedDeclaration":37355,"src":"16793:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53757,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16820:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"DiamondLoupeFacet","nameLocations":["16824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16824:17:91"},"referencedDeclaration":37355,"src":"16824:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16820:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16793:50:91"},{"assignments":[53760],"declarations":[{"constant":false,"id":53760,"mutability":"mutable","name":"cutter","nameLocation":"16869:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16853:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53759,"nodeType":"UserDefinedTypeName","pathNode":{"id":53758,"name":"DiamondCutFacet","nameLocations":["16853:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16853:15:91"},"referencedDeclaration":36918,"src":"16853:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53765,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16878:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53762,"nodeType":"UserDefinedTypeName","pathNode":{"id":53761,"name":"DiamondCutFacet","nameLocations":["16882:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16882:15:91"},"referencedDeclaration":36918,"src":"16882:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16878:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16853:46:91"},{"assignments":[53771],"declarations":[{"constant":false,"id":53771,"mutability":"mutable","name":"diamondCut","nameLocation":"16937:10:91","nodeType":"VariableDeclaration","scope":53910,"src":"16910: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":53769,"nodeType":"UserDefinedTypeName","pathNode":{"id":53768,"name":"IDiamond.FacetCut","nameLocations":["16910:8:91","16919:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16910:17:91"},"referencedDeclaration":40159,"src":"16910:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53770,"nodeType":"ArrayTypeName","src":"16910:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"hexValue":"37","id":53776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16974: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":53775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16950: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":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"IDiamond.FacetCut","nameLocations":["16954:8:91","16963:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16954:17:91"},"referencedDeclaration":40159,"src":"16954:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53774,"nodeType":"ArrayTypeName","src":"16954:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16950: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":"16910:66:91"},{"expression":{"id":53794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53779,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"16987:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53781,"indexExpression":{"hexValue":"30","id":53780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16998: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":"16987:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53786,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"17075:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53784,"name":"address","nodeType":"ElementaryTypeName","src":"17067:7:91","typeDescriptions":{}}},"id":53787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53788,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53791,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"17173: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":53782,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17017:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17026:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17017:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17053:12:91","17101:6:91","17154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17017:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17003:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"16987:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53795,"nodeType":"ExpressionStatement","src":"16987:229:91"},{"expression":{"id":53811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53796,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17227:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53798,"indexExpression":{"hexValue":"31","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17238: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":"17227:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53803,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53720,"src":"17315:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17307:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53801,"name":"address","nodeType":"ElementaryTypeName","src":"17307:7:91","typeDescriptions":{}}},"id":53804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17307:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53805,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17348:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17357:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17348:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17372:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17348:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53808,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"17412: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":53799,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17257:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17257:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17293:12:91","17340:6:91","17393:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17257:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17243:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17227:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53812,"nodeType":"ExpressionStatement","src":"17227:227:91"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17465:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"32","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17476: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":"17465:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53728,"src":"17553:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17545:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17545:7:91","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17545:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17595:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17586:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17610:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17586:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"17650: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":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17495:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17495:17:91","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":["17531:12:91","17578:6:91","17631:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17495:187:91","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":"17481:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17465:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17465:227:91"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17703:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"33","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17714: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":"17703:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53736,"src":"17791:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17783:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17783:7:91","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17783:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17826:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17835:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17826:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17850:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17826:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"17890: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":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17733:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17742:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17733:17:91","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":["17769:12:91","17818:6:91","17871:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17733:191:91","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":"17719:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17703:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17703:231:91"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17945:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"34","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17956: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":"17945:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18033:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18025:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:91","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18025:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18072:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18081:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18072:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18096:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18072:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"18136: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":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17975:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17984:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17975:17:91","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":["18011:12:91","18064:6:91","18117:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17975:199:91","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":"17961:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17945:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17945:239:91"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18195:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"35","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18206: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":"18195:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53760,"src":"18283:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18275:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18275:7:91","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18275:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18316:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18325:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18316:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18340:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18316:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"18380: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":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18225:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18225:17:91","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":["18261:12:91","18308:6:91","18361:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18225:187:91","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":"18211:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18195:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18195:227:91"},{"expression":{"id":53896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53881,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18433:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53883,"indexExpression":{"hexValue":"36","id":53882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18444: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":"18433:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53888,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18521:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18513:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53886,"name":"address","nodeType":"ElementaryTypeName","src":"18513:7:91","typeDescriptions":{}}},"id":53889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18513:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53890,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18554:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18563:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18554:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18578:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18554:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53893,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"18618: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":53884,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18463:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18472:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18463:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18499:12:91","18546:6:91","18599:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18463:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18449:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18433:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53897,"nodeType":"ExpressionStatement","src":"18433:227:91"},{"assignments":[53900],"declarations":[{"constant":false,"id":53900,"mutability":"mutable","name":"diamond","nameLocation":"18690:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"18671:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53899,"nodeType":"UserDefinedTypeName","pathNode":{"id":53898,"name":"SubnetActorDiamond","nameLocations":["18671:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18671:18:91"},"referencedDeclaration":36615,"src":"18671:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53907,"initialValue":{"arguments":[{"id":53904,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18723:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53905,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"18735: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":53903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18700: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":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"SubnetActorDiamond","nameLocations":["18704:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18704:18:91"},"referencedDeclaration":36615,"src":"18704:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18700:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18671:71:91"},{"expression":{"id":53908,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"18760:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53709,"id":53909,"nodeType":"Return","src":"18753:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16303:17:91","parameters":{"id":53705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53704,"mutability":"mutable","name":"params","nameLocation":"16365:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16321:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53703,"nodeType":"UserDefinedTypeName","pathNode":{"id":53702,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16321:18:91","16340:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16321:36:91"},"referencedDeclaration":36253,"src":"16321:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16320:52:91"},"returnParameters":{"id":53709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53911,"src":"16389:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53707,"nodeType":"UserDefinedTypeName","pathNode":{"id":53706,"name":"SubnetActorDiamond","nameLocations":["16389:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16389:18:91"},"referencedDeclaration":36615,"src":"16389:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16388:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53940,"nodeType":"FunctionDefinition","src":"18780:522:91","nodes":[],"body":{"id":53939,"nodeType":"Block","src":"19024:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53928,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53913,"src":"19065:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53929,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53916,"src":"19094:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53930,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53918,"src":"19118:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53931,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53920,"src":"19156:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53932,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53922,"src":"19184:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53924,"src":"19210:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53934,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19243:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19258:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19243:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19282: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":53927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":54243,"src":"19034: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":53937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19034:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53938,"nodeType":"ExpressionStatement","src":"19034:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18789:17:91","parameters":{"id":53925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53913,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18824:15:91","nodeType":"VariableDeclaration","scope":53940,"src":"18816:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53912,"name":"address","nodeType":"ElementaryTypeName","src":"18816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53916,"mutability":"mutable","name":"_consensus","nameLocation":"18863:10:91","nodeType":"VariableDeclaration","scope":53940,"src":"18849:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53915,"nodeType":"UserDefinedTypeName","pathNode":{"id":53914,"name":"ConsensusType","nameLocations":["18849:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18849:13:91"},"referencedDeclaration":37359,"src":"18849:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18891:24:91","nodeType":"VariableDeclaration","scope":53940,"src":"18883:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53917,"name":"uint256","nodeType":"ElementaryTypeName","src":"18883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53920,"mutability":"mutable","name":"_minValidators","nameLocation":"18932:14:91","nodeType":"VariableDeclaration","scope":53940,"src":"18925:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53919,"name":"uint64","nodeType":"ElementaryTypeName","src":"18925:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53922,"mutability":"mutable","name":"_checkPeriod","nameLocation":"18963:12:91","nodeType":"VariableDeclaration","scope":53940,"src":"18956:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53921,"name":"uint64","nodeType":"ElementaryTypeName","src":"18956:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53924,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"18991:19:91","nodeType":"VariableDeclaration","scope":53940,"src":"18985:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53923,"name":"uint8","nodeType":"ElementaryTypeName","src":"18985:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18806:210:91"},"returnParameters":{"id":53926,"nodeType":"ParameterList","parameters":[],"src":"19024:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54243,"nodeType":"FunctionDefinition","src":"19308:3730:91","nodes":[],"body":{"id":54242,"nodeType":"Block","src":"19631:3407:91","nodes":[],"statements":[{"assignments":[53963],"declarations":[{"constant":false,"id":53963,"mutability":"mutable","name":"_parentId","nameLocation":"19657:9:91","nodeType":"VariableDeclaration","scope":54242,"src":"19641:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53962,"nodeType":"UserDefinedTypeName","pathNode":{"id":53961,"name":"SubnetID","nameLocations":["19641:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19641:8:91"},"referencedDeclaration":50030,"src":"19641:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53972,"initialValue":{"arguments":[{"id":53965,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"19678:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19709: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":53968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19695: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":53966,"name":"address","nodeType":"ElementaryTypeName","src":"19699:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53967,"nodeType":"ArrayTypeName","src":"19699:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19695: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":53964,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19669:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19669:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19641:71:91"},{"expression":{"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53973,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"19723:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19735:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53975,"nodeType":"UserDefinedTypeName","pathNode":{"id":53974,"name":"SubnetActorManagerFacet","nameLocations":["19739:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19739:23:91"},"referencedDeclaration":51946,"src":"19739:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19735:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19723:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53979,"nodeType":"ExpressionStatement","src":"19723:41:91"},{"expression":{"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53980,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"19774:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19785:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53982,"nodeType":"UserDefinedTypeName","pathNode":{"id":53981,"name":"SubnetActorGetterFacet","nameLocations":["19789:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19789:22:91"},"referencedDeclaration":51235,"src":"19789:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19774:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53986,"nodeType":"ExpressionStatement","src":"19774:39:91"},{"expression":{"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19823:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19834:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53989,"nodeType":"UserDefinedTypeName","pathNode":{"id":53988,"name":"SubnetActorPauseFacet","nameLocations":["19838:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19838:21:91"},"referencedDeclaration":51991,"src":"19838:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19823:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53993,"nodeType":"ExpressionStatement","src":"19823:38:91"},{"expression":{"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53994,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19871:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19888:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53996,"nodeType":"UserDefinedTypeName","pathNode":{"id":53995,"name":"SubnetActorCheckpointingFacet","nameLocations":["19892:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19892:29:91"},"referencedDeclaration":50577,"src":"19892:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19888:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19871:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54000,"nodeType":"ExpressionStatement","src":"19871:52:91"},{"expression":{"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54001,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"19933:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19946:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54003,"nodeType":"UserDefinedTypeName","pathNode":{"id":54002,"name":"SubnetActorRewardFacet","nameLocations":["19950:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19950:22:91"},"referencedDeclaration":52158,"src":"19950:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19946:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19933:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54007,"nodeType":"ExpressionStatement","src":"19933:41:91"},{"expression":{"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54008,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"19984:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19995:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54010,"nodeType":"UserDefinedTypeName","pathNode":{"id":54009,"name":"DiamondCutFacet","nameLocations":["19999:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"19999:15:91"},"referencedDeclaration":36918,"src":"19999:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19995:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19984:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54014,"nodeType":"ExpressionStatement","src":"19984:32:91"},{"expression":{"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54015,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"20026:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20037:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"DiamondLoupeFacet","nameLocations":["20041:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20041:17:91"},"referencedDeclaration":37355,"src":"20041:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20037:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20026:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54021,"nodeType":"ExpressionStatement","src":"20026:34:91"},{"assignments":[54027],"declarations":[{"constant":false,"id":54027,"mutability":"mutable","name":"diamondCut","nameLocation":"20098:10:91","nodeType":"VariableDeclaration","scope":54242,"src":"20071: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":54025,"nodeType":"UserDefinedTypeName","pathNode":{"id":54024,"name":"IDiamond.FacetCut","nameLocations":["20071:8:91","20080:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20071:17:91"},"referencedDeclaration":40159,"src":"20071:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54026,"nodeType":"ArrayTypeName","src":"20071:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54034,"initialValue":{"arguments":[{"hexValue":"37","id":54032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20135: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":54031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20111: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":54029,"nodeType":"UserDefinedTypeName","pathNode":{"id":54028,"name":"IDiamond.FacetCut","nameLocations":["20115:8:91","20124:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20115:17:91"},"referencedDeclaration":40159,"src":"20115:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54030,"nodeType":"ArrayTypeName","src":"20115:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20111: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":"20071:66:91"},{"expression":{"id":54050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54035,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54037,"indexExpression":{"hexValue":"30","id":54036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20159: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":"20148:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54042,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"20236:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20228:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54040,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:91","typeDescriptions":{}}},"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20228:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54044,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20272:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20281:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20272:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20296:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20272:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54047,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"20336: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":54038,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20178:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20187:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20178:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20214:12:91","20264:6:91","20317:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20178:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20164:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20148:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54051,"nodeType":"ExpressionStatement","src":"20148:231:91"},{"expression":{"id":54067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54052,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20390:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54054,"indexExpression":{"hexValue":"31","id":54053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20401: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":"20390:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54059,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"20478:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20470:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54057,"name":"address","nodeType":"ElementaryTypeName","src":"20470:7:91","typeDescriptions":{}}},"id":54060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20470:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54061,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20513:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20522:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20513:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20537:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20513:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54064,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"20577: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":54055,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20420:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20429:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20420:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20456:12:91","20505:6:91","20558:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20420:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20406:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20390:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54068,"nodeType":"ExpressionStatement","src":"20390:229:91"},{"expression":{"id":54084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54069,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20630:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54071,"indexExpression":{"hexValue":"32","id":54070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20641: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":"20630:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54076,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"20718:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20710:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54074,"name":"address","nodeType":"ElementaryTypeName","src":"20710:7:91","typeDescriptions":{}}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20710:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54078,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20753:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20762:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20753:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20777:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20753:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54081,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"20817: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":54072,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20660:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20669:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20660:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20696:12:91","20745:6:91","20798:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20660:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20646:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20630:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54085,"nodeType":"ExpressionStatement","src":"20630:229:91"},{"expression":{"id":54101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54086,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54088,"indexExpression":{"hexValue":"33","id":54087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20881: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":"20870:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54093,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"20958:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20950:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54091,"name":"address","nodeType":"ElementaryTypeName","src":"20950:7:91","typeDescriptions":{}}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20950:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54095,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20995:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21004:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20995:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21019:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20995:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54098,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"21059: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":54089,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20900:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20909:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20900:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20936:12:91","20987:6:91","21040:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20900:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20886:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20870:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54102,"nodeType":"ExpressionStatement","src":"20870:233:91"},{"expression":{"id":54118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54103,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21114:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54105,"indexExpression":{"hexValue":"34","id":54104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21125: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":"21114:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54110,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"21202:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21194:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54108,"name":"address","nodeType":"ElementaryTypeName","src":"21194:7:91","typeDescriptions":{}}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54112,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21243:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21252:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21243:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21243:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54115,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"21307: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":54106,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21144:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21153:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21144:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21180:12:91","21235:6:91","21288:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21144:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21130:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21114:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54119,"nodeType":"ExpressionStatement","src":"21114:241:91"},{"expression":{"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54120,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54122,"indexExpression":{"hexValue":"35","id":54121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21377: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":"21366:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54127,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"21454:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21446:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54125,"name":"address","nodeType":"ElementaryTypeName","src":"21446:7:91","typeDescriptions":{}}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54129,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21489:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21498:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21489:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21513:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21489:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54132,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"21553: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":54123,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21396:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21396:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21432:12:91","21481:6:91","21534:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21396:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21382:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21366:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54136,"nodeType":"ExpressionStatement","src":"21366:229:91"},{"expression":{"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54137,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21606:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54139,"indexExpression":{"hexValue":"36","id":54138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21617: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":"21606:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54144,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"21694:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21686:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54142,"name":"address","nodeType":"ElementaryTypeName","src":"21686:7:91","typeDescriptions":{}}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21686:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54146,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21729:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21738:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21729:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21753:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21729:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54149,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"21793: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":54140,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21636:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21645:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21636:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21672:12:91","21721:6:91","21774:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21636:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21622:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21606:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54153,"nodeType":"ExpressionStatement","src":"21606:229:91"},{"expression":{"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54154,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"21846:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54158,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21894:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54161,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53963,"src":"21983:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54162,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53942,"src":"22026:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54163,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"22070:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54164,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53947,"src":"22123:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54165,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"22180:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54166,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53951,"src":"22233:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"22283:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54168,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53958,"src":"22343:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22395:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54170,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53956,"src":"22431:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54171,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"22480:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54172,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22533:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22552:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22533:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22533: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":54159,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21918:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21937:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21918:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21973:8:91","22010:14:91","22059:9:91","22098:23:91","22165:13:91","22212:19:91","22263:18:91","22320:21:91","22383:10:91","22415:14:91","22464:14:91","22519:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21918: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":54157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21858: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":54156,"nodeType":"UserDefinedTypeName","pathNode":{"id":54155,"name":"SubnetActorDiamond","nameLocations":["21862:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21862:18:91"},"referencedDeclaration":36615,"src":"21862:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21858:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21846:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54178,"nodeType":"ExpressionStatement","src":"21846:739:91"},{"expression":{"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"22596:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54183,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54181,"name":"address","nodeType":"ElementaryTypeName","src":"22632:7:91","typeDescriptions":{}}},"id":54184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54180,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22608:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22608:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22596:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54187,"nodeType":"ExpressionStatement","src":"22596:55:91"},{"expression":{"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54188,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"22661:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54192,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22702:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22694:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54190,"name":"address","nodeType":"ElementaryTypeName","src":"22694:7:91","typeDescriptions":{}}},"id":54193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54189,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22672:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22672:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22661:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54196,"nodeType":"ExpressionStatement","src":"22661:52:91"},{"expression":{"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54197,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"22723:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54201,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22767:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22759:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54199,"name":"address","nodeType":"ElementaryTypeName","src":"22759:7:91","typeDescriptions":{}}},"id":54202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22759:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54198,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22736:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22736:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22723:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54205,"nodeType":"ExpressionStatement","src":"22723:55:91"},{"expression":{"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54206,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"22788:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54210,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22843:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22835:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54208,"name":"address","nodeType":"ElementaryTypeName","src":"22835:7:91","typeDescriptions":{}}},"id":54211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54207,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22805:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22805:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22788:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54214,"nodeType":"ExpressionStatement","src":"22788:66:91"},{"expression":{"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54215,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"22864:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54219,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22906:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22898:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54217,"name":"address","nodeType":"ElementaryTypeName","src":"22898:7:91","typeDescriptions":{}}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22898:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54216,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22875:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22864:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54223,"nodeType":"ExpressionStatement","src":"22864:53:91"},{"expression":{"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54224,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"22927:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54228,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22962:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54226,"name":"address","nodeType":"ElementaryTypeName","src":"22954:7:91","typeDescriptions":{}}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22954:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54225,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22938:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22927:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54232,"nodeType":"ExpressionStatement","src":"22927:46:91"},{"expression":{"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54233,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"22983:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54237,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"23020:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23012:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54235,"name":"address","nodeType":"ElementaryTypeName","src":"23012:7:91","typeDescriptions":{}}},"id":54238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23012:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54234,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"22994:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22994:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"22983:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54241,"nodeType":"ExpressionStatement","src":"22983:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19317:17:91","parameters":{"id":53959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53942,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19352:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19344:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53941,"name":"address","nodeType":"ElementaryTypeName","src":"19344:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53945,"mutability":"mutable","name":"_consensus","nameLocation":"19391:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"19377:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53944,"nodeType":"UserDefinedTypeName","pathNode":{"id":53943,"name":"ConsensusType","nameLocations":["19377:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19377:13:91"},"referencedDeclaration":37359,"src":"19377:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53947,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19419:24:91","nodeType":"VariableDeclaration","scope":54243,"src":"19411:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53946,"name":"uint256","nodeType":"ElementaryTypeName","src":"19411:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53949,"mutability":"mutable","name":"_minValidators","nameLocation":"19460:14:91","nodeType":"VariableDeclaration","scope":54243,"src":"19453:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53948,"name":"uint64","nodeType":"ElementaryTypeName","src":"19453:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53951,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19491:12:91","nodeType":"VariableDeclaration","scope":54243,"src":"19484:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53950,"name":"uint64","nodeType":"ElementaryTypeName","src":"19484:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53953,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19519:19:91","nodeType":"VariableDeclaration","scope":54243,"src":"19513:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53952,"name":"uint8","nodeType":"ElementaryTypeName","src":"19513:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53956,"mutability":"mutable","name":"_permissionMode","nameLocation":"19563:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19548:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"PermissionMode","nameLocations":["19548:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19548:14:91"},"referencedDeclaration":50118,"src":"19548:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53958,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19595:22:91","nodeType":"VariableDeclaration","scope":54243,"src":"19588:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53957,"name":"uint16","nodeType":"ElementaryTypeName","src":"19588:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19334:289:91"},"returnParameters":{"id":53960,"nodeType":"ParameterList","parameters":[],"src":"19631:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54336,"nodeType":"FunctionDefinition","src":"23044:997:91","nodes":[],"body":{"id":54335,"nodeType":"Block","src":"23136:905:91","nodes":[],"statements":[{"assignments":[54253],"declarations":[{"constant":false,"id":54253,"mutability":"mutable","name":"mockedManager","nameLocation":"23162:13:91","nodeType":"VariableDeclaration","scope":54335,"src":"23146:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":54252,"nodeType":"UserDefinedTypeName","pathNode":{"id":54251,"name":"SubnetActorMock","nameLocations":["23146:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23146:15:91"},"referencedDeclaration":58922,"src":"23146:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54258,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23178:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58922_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54255,"nodeType":"UserDefinedTypeName","pathNode":{"id":54254,"name":"SubnetActorMock","nameLocations":["23182:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23182:15:91"},"referencedDeclaration":58922,"src":"23182:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}},"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23178:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23146:53:91"},{"assignments":[54261],"declarations":[{"constant":false,"id":54261,"mutability":"mutable","name":"getter","nameLocation":"23232:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23209:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54260,"nodeType":"UserDefinedTypeName","pathNode":{"id":54259,"name":"SubnetActorGetterFacet","nameLocations":["23209:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23209:22:91"},"referencedDeclaration":51235,"src":"23209:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23241:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54263,"nodeType":"UserDefinedTypeName","pathNode":{"id":54262,"name":"SubnetActorGetterFacet","nameLocations":["23245:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23245:22:91"},"referencedDeclaration":51235,"src":"23245:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23209:60:91"},{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"diamondCut","nameLocation":"23307:10:91","nodeType":"VariableDeclaration","scope":54335,"src":"23280: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":54270,"nodeType":"UserDefinedTypeName","pathNode":{"id":54269,"name":"IDiamond.FacetCut","nameLocations":["23280:8:91","23289:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23280:17:91"},"referencedDeclaration":40159,"src":"23280:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54271,"nodeType":"ArrayTypeName","src":"23280:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54279,"initialValue":{"arguments":[{"hexValue":"32","id":54277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23344: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":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23320: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":54274,"nodeType":"UserDefinedTypeName","pathNode":{"id":54273,"name":"IDiamond.FacetCut","nameLocations":["23324:8:91","23333:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23324:17:91"},"referencedDeclaration":40159,"src":"23324:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54275,"nodeType":"ArrayTypeName","src":"23324:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23320: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":"23280:66:91"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54280,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23357:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54282,"indexExpression":{"hexValue":"30","id":54281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23368: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":"23357:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54287,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"23445:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}],"id":54286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23437:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54285,"name":"address","nodeType":"ElementaryTypeName","src":"23437:7:91","typeDescriptions":{}}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23437:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54289,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23485:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23485:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23509:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23485:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54292,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"23549: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":54283,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23387:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23396:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23387:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23423:12:91","23477:6:91","23530:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23387:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23373:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23357:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54296,"nodeType":"ExpressionStatement","src":"23357:241:91"},{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54297,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23609:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54299,"indexExpression":{"hexValue":"31","id":54298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23620: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":"23609:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54304,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54261,"src":"23697:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23689:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54302,"name":"address","nodeType":"ElementaryTypeName","src":"23689:7:91","typeDescriptions":{}}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23689:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54306,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23730:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23739:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23730:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23754:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23730:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54309,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"23794: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":54300,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23639:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23648:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23639:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23675:12:91","23722:6:91","23775:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23639:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23625:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23609:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54313,"nodeType":"ExpressionStatement","src":"23609:227:91"},{"assignments":[54318],"declarations":[{"constant":false,"id":54318,"mutability":"mutable","name":"params","nameLocation":"23891:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23847:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54317,"nodeType":"UserDefinedTypeName","pathNode":{"id":54316,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23847:18:91","23866:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23847:36:91"},"referencedDeclaration":36253,"src":"23847:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54322,"initialValue":{"arguments":[{"id":54320,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54245,"src":"23936:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54319,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"23900: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":54321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23900:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23847:92:91"},{"assignments":[54325],"declarations":[{"constant":false,"id":54325,"mutability":"mutable","name":"d","nameLocation":"23969:1:91","nodeType":"VariableDeclaration","scope":54335,"src":"23950:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54324,"nodeType":"UserDefinedTypeName","pathNode":{"id":54323,"name":"SubnetActorDiamond","nameLocations":["23950:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23950:18:91"},"referencedDeclaration":36615,"src":"23950:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54332,"initialValue":{"arguments":[{"id":54329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23996:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54330,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54318,"src":"24008: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":54328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23973: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":54327,"nodeType":"UserDefinedTypeName","pathNode":{"id":54326,"name":"SubnetActorDiamond","nameLocations":["23977:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23977:18:91"},"referencedDeclaration":36615,"src":"23977:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23973:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23950:65:91"},{"expression":{"id":54333,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54325,"src":"24033:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54250,"id":54334,"nodeType":"Return","src":"24026:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23053:34:91","parameters":{"id":54246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54245,"mutability":"mutable","name":"gw","nameLocation":"23096:2:91","nodeType":"VariableDeclaration","scope":54336,"src":"23088:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54244,"name":"address","nodeType":"ElementaryTypeName","src":"23088:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23087:12:91"},"returnParameters":{"id":54250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54336,"src":"23116:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54248,"nodeType":"UserDefinedTypeName","pathNode":{"id":54247,"name":"SubnetActorDiamond","nameLocations":["23116:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23116:18:91"},"referencedDeclaration":36615,"src":"23116:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23115:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54478,"nodeType":"FunctionDefinition","src":"24093:1703:91","nodes":[],"body":{"id":54477,"nodeType":"Block","src":"24231:1565:91","nodes":[],"statements":[{"assignments":[54350],"declarations":[{"constant":false,"id":54350,"mutability":"mutable","name":"diamondCut","nameLocation":"24268:10:91","nodeType":"VariableDeclaration","scope":54477,"src":"24241: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":54348,"nodeType":"UserDefinedTypeName","pathNode":{"id":54347,"name":"IDiamond.FacetCut","nameLocations":["24241:8:91","24250:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24241:17:91"},"referencedDeclaration":40159,"src":"24241:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54349,"nodeType":"ArrayTypeName","src":"24241:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54357,"initialValue":{"arguments":[{"hexValue":"34","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24305: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":54354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24281: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":54352,"nodeType":"UserDefinedTypeName","pathNode":{"id":54351,"name":"IDiamond.FacetCut","nameLocations":["24285:8:91","24294:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24285:17:91"},"referencedDeclaration":40159,"src":"24285:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54353,"nodeType":"ArrayTypeName","src":"24285:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24281: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":"24241:66:91"},{"assignments":[54360],"declarations":[{"constant":false,"id":54360,"mutability":"mutable","name":"regCutFacet","nameLocation":"24334:11:91","nodeType":"VariableDeclaration","scope":54477,"src":"24318:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54359,"nodeType":"UserDefinedTypeName","pathNode":{"id":54358,"name":"DiamondCutFacet","nameLocations":["24318:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24318:15:91"},"referencedDeclaration":36918,"src":"24318:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24348:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54362,"nodeType":"UserDefinedTypeName","pathNode":{"id":54361,"name":"DiamondCutFacet","nameLocations":["24352:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24352:15:91"},"referencedDeclaration":36918,"src":"24352:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24318:51:91"},{"assignments":[54368],"declarations":[{"constant":false,"id":54368,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24397:13:91","nodeType":"VariableDeclaration","scope":54477,"src":"24379:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54367,"nodeType":"UserDefinedTypeName","pathNode":{"id":54366,"name":"DiamondLoupeFacet","nameLocations":["24379:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24379:17:91"},"referencedDeclaration":37355,"src":"24379:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24413:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54370,"nodeType":"UserDefinedTypeName","pathNode":{"id":54369,"name":"DiamondLoupeFacet","nameLocations":["24417:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24417:17:91"},"referencedDeclaration":37355,"src":"24417:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24413:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24379:57:91"},{"assignments":[54376],"declarations":[{"constant":false,"id":54376,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24466:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24446:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54375,"nodeType":"UserDefinedTypeName","pathNode":{"id":54374,"name":"RegisterSubnetFacet","nameLocations":["24446:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24446:19:91"},"referencedDeclaration":52286,"src":"24446:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24483:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54378,"nodeType":"UserDefinedTypeName","pathNode":{"id":54377,"name":"RegisterSubnetFacet","nameLocations":["24487:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24487:19:91"},"referencedDeclaration":52286,"src":"24487:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24483:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24446:62:91"},{"assignments":[54384],"declarations":[{"constant":false,"id":54384,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24536:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24518:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54383,"nodeType":"UserDefinedTypeName","pathNode":{"id":54382,"name":"SubnetGetterFacet","nameLocations":["24518:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24518:17:91"},"referencedDeclaration":52524,"src":"24518:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54389,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24553:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54386,"nodeType":"UserDefinedTypeName","pathNode":{"id":54385,"name":"SubnetGetterFacet","nameLocations":["24557:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24557:17:91"},"referencedDeclaration":52524,"src":"24557:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24553:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24518:58:91"},{"expression":{"id":54405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54390,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24587:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54392,"indexExpression":{"hexValue":"30","id":54391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24598: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":"24587:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54397,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54368,"src":"24675:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24667:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54395,"name":"address","nodeType":"ElementaryTypeName","src":"24667:7:91","typeDescriptions":{}}},"id":54398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24667:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54399,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24715:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24724:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24715:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24739:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24715:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54402,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"24779: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":54393,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24617:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24626:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24617:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24653:12:91","24707:6:91","24760:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24617:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24603:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24587:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54406,"nodeType":"ExpressionStatement","src":"24587:240:91"},{"expression":{"id":54422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54407,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24837:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54409,"indexExpression":{"hexValue":"31","id":54408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24848: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":"24837:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54414,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54360,"src":"24925:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24917:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54412,"name":"address","nodeType":"ElementaryTypeName","src":"24917:7:91","typeDescriptions":{}}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24917:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54416,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24963:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24972:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24963:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24963:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54419,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"25027: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":54410,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24867:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24876:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24867:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24903:12:91","24955:6:91","25008:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24867:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24853:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24837:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54423,"nodeType":"ExpressionStatement","src":"24837:238:91"},{"expression":{"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54424,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25085:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54426,"indexExpression":{"hexValue":"32","id":54425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25096: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":"25085:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54431,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54376,"src":"25173:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25165:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54429,"name":"address","nodeType":"ElementaryTypeName","src":"25165:7:91","typeDescriptions":{}}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25165:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54433,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25214:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25223:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25214:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25238:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25214:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54436,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"25278: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":54427,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25124:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25115:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25151:12:91","25206:6:91","25259:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25115:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25101:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25085:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54440,"nodeType":"ExpressionStatement","src":"25085:246:91"},{"expression":{"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54441,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25341:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54443,"indexExpression":{"hexValue":"33","id":54442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25352: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":"25341:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54448,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"25429:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25421:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54446,"name":"address","nodeType":"ElementaryTypeName","src":"25421:7:91","typeDescriptions":{}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25421:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54450,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25470:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25479:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25470:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25494:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25470:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54453,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"25534: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":54444,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25371:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25380:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25371:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25407:12:91","25462:6:91","25515:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25371:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25357:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25341:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54457,"nodeType":"ExpressionStatement","src":"25341:252:91"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25626:17:91","nodeType":"VariableDeclaration","scope":54477,"src":"25604:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"SubnetRegistryDiamond","nameLocations":["25604:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25604:21:91"},"referencedDeclaration":36853,"src":"25604:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54467,"initialValue":{"arguments":[{"id":54464,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25672:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54465,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"25684: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":54463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25646: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":54462,"nodeType":"UserDefinedTypeName","pathNode":{"id":54461,"name":"SubnetRegistryDiamond","nameLocations":["25650:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25650:21:91"},"referencedDeclaration":36853,"src":"25650:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25646:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25604:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54471,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25736:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25728:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54469,"name":"address","nodeType":"ElementaryTypeName","src":"25728:7:91","typeDescriptions":{}}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25728:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54468,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53086,"src":"25706:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25706:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54474,"nodeType":"EmitStatement","src":"25701:54:91"},{"expression":{"id":54475,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25772:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54344,"id":54476,"nodeType":"Return","src":"25765:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24102:20:91","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"params","nameLocation":"24179:6:91","nodeType":"VariableDeclaration","scope":54478,"src":"24132:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54338,"nodeType":"UserDefinedTypeName","pathNode":{"id":54337,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24132:21:91","24154:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24132:39:91"},"referencedDeclaration":36652,"src":"24132:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24122:69:91"},"returnParameters":{"id":54344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54478,"src":"24208:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54342,"nodeType":"UserDefinedTypeName","pathNode":{"id":54341,"name":"SubnetRegistryDiamond","nameLocations":["24208:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24208:21:91"},"referencedDeclaration":36853,"src":"24208:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24207:23:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54507,"nodeType":"FunctionDefinition","src":"25802:190:91","nodes":[],"body":{"id":54506,"nodeType":"Block","src":"25883:109:91","nodes":[],"statements":[{"body":{"id":54502,"nodeType":"Block","src":"25924:42:91","statements":[{"expression":{"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54496,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25938:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54497,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54481,"src":"25945:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54499,"indexExpression":{"id":54498,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25945:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25938:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54501,"nodeType":"ExpressionStatement","src":"25938:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25912:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25916:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25912:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54503,"initializationExpression":{"assignments":[54487],"declarations":[{"constant":false,"id":54487,"mutability":"mutable","name":"i","nameLocation":"25905:1:91","nodeType":"VariableDeclaration","scope":54503,"src":"25898:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54486,"name":"uint64","nodeType":"ElementaryTypeName","src":"25898:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54489,"initialValue":{"hexValue":"30","id":54488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25898:12:91"},"loopExpression":{"expression":{"id":54494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25919:3:91","subExpression":{"id":54493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25919:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54495,"nodeType":"ExpressionStatement","src":"25919:3:91"},"nodeType":"ForStatement","src":"25893:73:91"},{"expression":{"id":54504,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25982:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54485,"id":54505,"nodeType":"Return","src":"25975:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25811:11:91","parameters":{"id":54482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54481,"mutability":"mutable","name":"weights","nameLocation":"25840:7:91","nodeType":"VariableDeclaration","scope":54507,"src":"25823:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54479,"name":"uint256","nodeType":"ElementaryTypeName","src":"25823:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54480,"nodeType":"ArrayTypeName","src":"25823:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25822:26:91"},"returnParameters":{"id":54485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54484,"mutability":"mutable","name":"sum","nameLocation":"25878:3:91","nodeType":"VariableDeclaration","scope":54507,"src":"25870:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54483,"name":"uint256","nodeType":"ElementaryTypeName","src":"25870:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25869:13:91"},"scope":55675,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54682,"nodeType":"FunctionDefinition","src":"25998:933:91","nodes":[],"body":{"id":54681,"nodeType":"Block","src":"26101:830:91","nodes":[],"statements":[{"expression":{"id":54524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26111: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":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26141: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":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26124: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":54519,"nodeType":"UserDefinedTypeName","pathNode":{"id":54518,"name":"FvmAddress","nameLocations":["26128:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26128:10:91"},"referencedDeclaration":49951,"src":"26128:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54520,"nodeType":"ArrayTypeName","src":"26128:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26124:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26111:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54525,"nodeType":"ExpressionStatement","src":"26111:32:91"},{"expression":{"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54526,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26153:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54528,"indexExpression":{"hexValue":"30","id":54527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26164: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":"26153:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26199: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":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26191:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26194:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26191:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26191:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54529,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26169:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26186:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26169: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":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26169:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26153:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54537,"nodeType":"ExpressionStatement","src":"26153:51:91"},{"expression":{"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54538,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26214:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54540,"indexExpression":{"hexValue":"31","id":54539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26225: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":"26214:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26260: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":54543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26252:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26255:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26252:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26252:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54541,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26230:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26247:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26230: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":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26230:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26214:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54549,"nodeType":"ExpressionStatement","src":"26214:51:91"},{"expression":{"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54550,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26275:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54552,"indexExpression":{"hexValue":"32","id":54551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26286: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":"26275:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26321: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":54555,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26313:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26316:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26313:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26313:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54553,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26291:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26308:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26291: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":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26291:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26275:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54561,"nodeType":"ExpressionStatement","src":"26275:51:91"},{"expression":{"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54562,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26337:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26363: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":54565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26349: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":54563,"name":"address","nodeType":"ElementaryTypeName","src":"26353:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54564,"nodeType":"ArrayTypeName","src":"26353:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26349:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26337:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54569,"nodeType":"ExpressionStatement","src":"26337:28:91"},{"expression":{"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54570,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26375:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54572,"indexExpression":{"hexValue":"30","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26385: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":"26375:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26398: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":54573,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26390:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26393:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26390:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26390:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26375:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54578,"nodeType":"ExpressionStatement","src":"26375:27:91"},{"expression":{"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54579,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54581,"indexExpression":{"hexValue":"31","id":54580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422: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":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435: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":54582,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54583,"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":54585,"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":54587,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54590,"indexExpression":{"hexValue":"32","id":54589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459: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":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472: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":54591,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54592,"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":54594,"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":54596,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"assignments":[54601],"declarations":[{"constant":false,"id":54601,"mutability":"mutable","name":"weights","nameLocation":"26504:7:91","nodeType":"VariableDeclaration","scope":54681,"src":"26487:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26487:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54600,"nodeType":"ArrayTypeName","src":"26487:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54607,"initialValue":{"arguments":[{"hexValue":"33","id":54605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26528: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":54604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26514: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":54602,"name":"uint256","nodeType":"ElementaryTypeName","src":"26518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54603,"nodeType":"ArrayTypeName","src":"26518:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26514:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26487:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26557: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":54611,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26549:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26552:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26549:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26549:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26563: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":54608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26541:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26544:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26541:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26541:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54617,"nodeType":"ExpressionStatement","src":"26541:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26591: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":54621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26583:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26586:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26583:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26583:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26597: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":54618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26575:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26575:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26575:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54627,"nodeType":"ExpressionStatement","src":"26575:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26625: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":54631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26617:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26620:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26617:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26617:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26631: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":54628,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26609:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26612:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26609:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26609:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54637,"nodeType":"ExpressionStatement","src":"26609:24:91"},{"expression":{"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54638,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26644:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54640,"indexExpression":{"hexValue":"30","id":54639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26652: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":"26644:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26657:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26644:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54643,"nodeType":"ExpressionStatement","src":"26644:16:91"},{"expression":{"id":54648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54644,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26670:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54646,"indexExpression":{"hexValue":"31","id":54645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26678: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":"26670:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26683:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26670:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54649,"nodeType":"ExpressionStatement","src":"26670:16:91"},{"expression":{"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54650,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26696:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54652,"indexExpression":{"hexValue":"32","id":54651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26704: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":"26696:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26709:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54655,"nodeType":"ExpressionStatement","src":"26696:16:91"},{"assignments":[54658],"declarations":[{"constant":false,"id":54658,"mutability":"mutable","name":"finality","nameLocation":"26745:8:91","nodeType":"VariableDeclaration","scope":54681,"src":"26723:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54657,"nodeType":"UserDefinedTypeName","pathNode":{"id":54656,"name":"ParentFinality","nameLocations":["26723:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26723:14:91"},"referencedDeclaration":49871,"src":"26723:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54667,"initialValue":{"arguments":[{"expression":{"id":54660,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26780:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26786:6:91","memberName":"number","nodeType":"MemberAccess","src":"26780:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26813: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":54663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26805:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26805:7:91","typeDescriptions":{}}},"id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26805:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54659,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26756:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26772:6:91","26794:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26756:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26723:94:91"},{"expression":{"arguments":[{"expression":{"id":54671,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26837:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26848:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26837:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54668,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26828:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26828:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26828:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54674,"nodeType":"ExpressionStatement","src":"26828:33:91"},{"expression":{"arguments":[{"id":54678,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54658,"src":"26915: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":54675,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"26871:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26894:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26871: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":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26871:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54680,"nodeType":"ExpressionStatement","src":"26871:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26007:15:91","parameters":{"id":54508,"nodeType":"ParameterList","parameters":[],"src":"26022:2:91"},"returnParameters":{"id":54516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54512,"mutability":"mutable","name":"validators","nameLocation":"26061:10:91","nodeType":"VariableDeclaration","scope":54682,"src":"26041: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":54510,"nodeType":"UserDefinedTypeName","pathNode":{"id":54509,"name":"FvmAddress","nameLocations":["26041:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26041:10:91"},"referencedDeclaration":49951,"src":"26041:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54511,"nodeType":"ArrayTypeName","src":"26041:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54515,"mutability":"mutable","name":"addresses","nameLocation":"26090:9:91","nodeType":"VariableDeclaration","scope":54682,"src":"26073:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54513,"name":"address","nodeType":"ElementaryTypeName","src":"26073:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"nodeType":"ArrayTypeName","src":"26073:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26040:60:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54775,"nodeType":"FunctionDefinition","src":"26937:1297:91","nodes":[],"body":{"id":54774,"nodeType":"Block","src":"27021:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54692,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"27046:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54693,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27073:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54691,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55582,"src":"27031:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27031:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54695,"nodeType":"ExpressionStatement","src":"27031:46:91"},{"assignments":[54698],"declarations":[{"constant":false,"id":54698,"mutability":"mutable","name":"crossMsg","nameLocation":"27104:8:91","nodeType":"VariableDeclaration","scope":54774,"src":"27088:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54697,"nodeType":"UserDefinedTypeName","pathNode":{"id":54696,"name":"CrossMsg","nameLocations":["27088:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27088:8:91"},"referencedDeclaration":49927,"src":"27088:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54738,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54706,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27267:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54702,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27226:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27235:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27226:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27252:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27226: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":54707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54710,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27330:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54708,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27308:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27325:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27308: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":54711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308: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":54701,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27183:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27216:8:91","27296:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27183:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54718,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27462:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54714,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27421:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27430:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27421:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27447:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27421: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":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54722,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27522:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54720,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27500:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27517:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27500: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":54723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27500: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":54713,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27378:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27411:8:91","27488:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27378:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54725,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27570:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27594:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27570:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54729,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27647:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27694: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":54731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27684:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54730,"name":"bytes","nodeType":"ElementaryTypeName","src":"27688:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27684:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54734,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27719: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":54700,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27147:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27177:4:91","27374:2:91","27563:5:91","27613:5:91","27639:6:91","27676:6:91","27714:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27147:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27778: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":54699,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27138:7:91","27769:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27115:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27088:706:91"},{"assignments":[54743],"declarations":[{"constant":false,"id":54743,"mutability":"mutable","name":"msgs","nameLocation":"27822:4:91","nodeType":"VariableDeclaration","scope":54774,"src":"27804: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":54741,"nodeType":"UserDefinedTypeName","pathNode":{"id":54740,"name":"CrossMsg","nameLocations":["27804:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27804:8:91"},"referencedDeclaration":49927,"src":"27804:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54742,"nodeType":"ArrayTypeName","src":"27804:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54750,"initialValue":{"arguments":[{"hexValue":"31","id":54748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844: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":54747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27829: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":54745,"nodeType":"UserDefinedTypeName","pathNode":{"id":54744,"name":"CrossMsg","nameLocations":["27833:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27833:8:91"},"referencedDeclaration":49927,"src":"27833:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54746,"nodeType":"ArrayTypeName","src":"27833:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27829: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":"27804:42:91"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"27856:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54753,"indexExpression":{"hexValue":"30","id":54752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27861: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":"27856:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"27866:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27856:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54756,"nodeType":"ExpressionStatement","src":"27856:18:91"},{"expression":{"arguments":[{"expression":{"id":54760,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28113:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28124:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28113:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54757,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28104:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28107:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28104:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28104:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54763,"nodeType":"ExpressionStatement","src":"28104:33:91"},{"expression":{"arguments":[{"id":54767,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"28187: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":54764,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"28147:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28168:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28147: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":54768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28147:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54769,"nodeType":"ExpressionStatement","src":"28147:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54770,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"28210:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28219:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28210: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":54772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28210:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54690,"id":54773,"nodeType":"Return","src":"28203:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26946:20:91","parameters":{"id":54687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54684,"mutability":"mutable","name":"caller","nameLocation":"26975:6:91","nodeType":"VariableDeclaration","scope":54775,"src":"26967:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54683,"name":"address","nodeType":"ElementaryTypeName","src":"26967:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54686,"mutability":"mutable","name":"src","nameLocation":"26991:3:91","nodeType":"VariableDeclaration","scope":54775,"src":"26983:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54685,"name":"address","nodeType":"ElementaryTypeName","src":"26983:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26966:29:91"},"returnParameters":{"id":54690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54775,"src":"27012:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27012:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27011:9:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54786,"nodeType":"FunctionDefinition","src":"28240:93:91","nodes":[],"body":{"id":54785,"nodeType":"Block","src":"28288:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54781,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54777,"src":"28311:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28322: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":54780,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"28298:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28298:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54784,"nodeType":"ExpressionStatement","src":"28298:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28249:12:91","parameters":{"id":54778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54777,"mutability":"mutable","name":"validator","nameLocation":"28270:9:91","nodeType":"VariableDeclaration","scope":54786,"src":"28262:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54776,"name":"address","nodeType":"ElementaryTypeName","src":"28262:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28261:19:91"},"returnParameters":{"id":54779,"nodeType":"ParameterList","parameters":[],"src":"28288:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54869,"nodeType":"FunctionDefinition","src":"28339:610:91","nodes":[],"body":{"id":54868,"nodeType":"Block","src":"28403:546:91","nodes":[],"statements":[{"assignments":[54797],"declarations":[{"constant":false,"id":54797,"mutability":"mutable","name":"validators","nameLocation":"28433:10:91","nodeType":"VariableDeclaration","scope":54868,"src":"28413: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":54795,"nodeType":"UserDefinedTypeName","pathNode":{"id":54794,"name":"FvmAddress","nameLocations":["28413:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28413:10:91"},"referencedDeclaration":49951,"src":"28413:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54796,"nodeType":"ArrayTypeName","src":"28413:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54804,"initialValue":{"arguments":[{"hexValue":"31","id":54802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28463: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":54801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28446: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":54799,"nodeType":"UserDefinedTypeName","pathNode":{"id":54798,"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":54800,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28446: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":"28413:52:91"},{"expression":{"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54805,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54797,"src":"28475:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54807,"indexExpression":{"hexValue":"30","id":54806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28486: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":"28475:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54810,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28513:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54808,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28491:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28508:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28491: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":54811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28491:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28475:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54813,"nodeType":"ExpressionStatement","src":"28475:48:91"},{"assignments":[54818],"declarations":[{"constant":false,"id":54818,"mutability":"mutable","name":"weights","nameLocation":"28550:7:91","nodeType":"VariableDeclaration","scope":54868,"src":"28533:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54816,"name":"uint256","nodeType":"ElementaryTypeName","src":"28533:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54817,"nodeType":"ArrayTypeName","src":"28533:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54824,"initialValue":{"arguments":[{"hexValue":"31","id":54822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28574: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":54821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28560: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":54819,"name":"uint256","nodeType":"ElementaryTypeName","src":"28564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54820,"nodeType":"ArrayTypeName","src":"28564:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28560:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28533:43:91"},{"expression":{"id":54829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54825,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"28586:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54827,"indexExpression":{"hexValue":"30","id":54826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28594: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":"28586:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54828,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"28599:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28586:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54830,"nodeType":"ExpressionStatement","src":"28586:19:91"},{"expression":{"arguments":[{"id":54834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28624:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28635: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":54831,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28616:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28619:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28616:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28616:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54837,"nodeType":"ExpressionStatement","src":"28616:21:91"},{"assignments":[54840],"declarations":[{"constant":false,"id":54840,"mutability":"mutable","name":"finality","nameLocation":"28669:8:91","nodeType":"VariableDeclaration","scope":54868,"src":"28647:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54839,"nodeType":"UserDefinedTypeName","pathNode":{"id":54838,"name":"ParentFinality","nameLocations":["28647:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28647:14:91"},"referencedDeclaration":49871,"src":"28647:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54849,"initialValue":{"arguments":[{"expression":{"id":54842,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28704:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28710:6:91","memberName":"number","nodeType":"MemberAccess","src":"28704:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28737: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":54845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28729:7:91","typeDescriptions":{}}},"id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54841,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28680:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:6:91","28718:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28680:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28647:94:91"},{"expression":{"arguments":[{"expression":{"id":54853,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28831:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28842:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28831:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54850,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28817:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28820:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28817:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28817:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54856,"nodeType":"ExpressionStatement","src":"28817:38:91"},{"expression":{"arguments":[{"id":54860,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54840,"src":"28909: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":54857,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"28865:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28888:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28865: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":54861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28865:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54862,"nodeType":"ExpressionStatement","src":"28865:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28928:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28931:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28928:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28928:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54867,"nodeType":"ExpressionStatement","src":"28928:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28348:12:91","parameters":{"id":54791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54788,"mutability":"mutable","name":"validator","nameLocation":"28369:9:91","nodeType":"VariableDeclaration","scope":54869,"src":"28361:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54787,"name":"address","nodeType":"ElementaryTypeName","src":"28361:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54790,"mutability":"mutable","name":"weight","nameLocation":"28388:6:91","nodeType":"VariableDeclaration","scope":54869,"src":"28380:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54789,"name":"uint256","nodeType":"ElementaryTypeName","src":"28380:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28360:35:91"},"returnParameters":{"id":54792,"nodeType":"ParameterList","parameters":[],"src":"28403:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54882,"nodeType":"FunctionDefinition","src":"28955:112:91","nodes":[],"body":{"id":54881,"nodeType":"Block","src":"28999:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29021:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"29053: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":54874,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29009:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29017:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29009:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29009:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54880,"nodeType":"ExpressionStatement","src":"29009:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"28964:6:91","parameters":{"id":54872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54871,"mutability":"mutable","name":"amount","nameLocation":"28979:6:91","nodeType":"VariableDeclaration","scope":54882,"src":"28971:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"28971:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28970:16:91"},"returnParameters":{"id":54873,"nodeType":"ParameterList","parameters":[],"src":"28999:0:91"},"scope":55675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54897,"nodeType":"FunctionDefinition","src":"29073:131:91","nodes":[],"body":{"id":54896,"nodeType":"Block","src":"29137:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54890,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54884,"src":"29152:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54891,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54886,"src":"29167:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54892,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29179:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29190:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29179: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":54889,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54897,55022],"referencedDeclaration":55022,"src":"29147:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29147:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54895,"nodeType":"ExpressionStatement","src":"29147:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29082:4:91","parameters":{"id":54887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54884,"mutability":"mutable","name":"funderAddress","nameLocation":"29095:13:91","nodeType":"VariableDeclaration","scope":54897,"src":"29087:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"29087:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54886,"mutability":"mutable","name":"fundAmount","nameLocation":"29118:10:91","nodeType":"VariableDeclaration","scope":54897,"src":"29110:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54885,"name":"uint256","nodeType":"ElementaryTypeName","src":"29110:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29086:43:91"},"returnParameters":{"id":54888,"nodeType":"ParameterList","parameters":[],"src":"29137:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55022,"nodeType":"FunctionDefinition","src":"29210:1180:91","nodes":[],"body":{"id":55021,"nodeType":"Block","src":"29291:1099:91","nodes":[],"statements":[{"assignments":[54909,null,54911,null,54913],"declarations":[{"constant":false,"id":54909,"mutability":"mutable","name":"subnetId","nameLocation":"29383:8:91","nodeType":"VariableDeclaration","scope":55021,"src":"29367:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54908,"nodeType":"UserDefinedTypeName","pathNode":{"id":54907,"name":"SubnetID","nameLocations":["29367:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29367:8:91"},"referencedDeclaration":50030,"src":"29367:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54911,"mutability":"mutable","name":"nonceBefore","nameLocation":"29403:11:91","nodeType":"VariableDeclaration","scope":55021,"src":"29395:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54910,"name":"uint256","nodeType":"ElementaryTypeName","src":"29395:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54913,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29426:16:91","nodeType":"VariableDeclaration","scope":55021,"src":"29418:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"29418:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54920,"initialValue":{"arguments":[{"arguments":[{"id":54917,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"29464:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29456:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54915,"name":"address","nodeType":"ElementaryTypeName","src":"29456:7:91","typeDescriptions":{}}},"id":54918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54914,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"29446: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":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29446: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":"29366:109:91"},{"assignments":[54922],"declarations":[{"constant":false,"id":54922,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29494:25:91","nodeType":"VariableDeclaration","scope":55021,"src":"29486:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54921,"name":"uint256","nodeType":"ElementaryTypeName","src":"29486:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54929,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54925,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29558: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":54923,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29522:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29531:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29522: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":54926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29522:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29570:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29522:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29486:85:91"},{"assignments":[54931],"declarations":[{"constant":false,"id":54931,"mutability":"mutable","name":"expectedNonce","nameLocation":"29589:13:91","nodeType":"VariableDeclaration","scope":55021,"src":"29581:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54930,"name":"uint256","nodeType":"ElementaryTypeName","src":"29581:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54935,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54932,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"29605:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29619:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29605:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29581:39:91"},{"assignments":[54937],"declarations":[{"constant":false,"id":54937,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29638:18:91","nodeType":"VariableDeclaration","scope":55021,"src":"29630:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54936,"name":"uint256","nodeType":"ElementaryTypeName","src":"29630:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54941,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54938,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54913,"src":"29659:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54939,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29678:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29659:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29630:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54943,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29707:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29716:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29707:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29707:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29707:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29735: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":54942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29699:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29699:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54950,"nodeType":"ExpressionStatement","src":"29699:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54951,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29769:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54952,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29777:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29788:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29777:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29769:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54968,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29912:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54969,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29920:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29931:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29920:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29912:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54984,"nodeType":"IfStatement","src":"29908:138:91","trueBody":{"id":54983,"nodeType":"Block","src":"29938:108:91","statements":[{"expression":{"arguments":[{"id":54975,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29976:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54978,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"30008:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54976,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29986:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30003:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29986: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":54979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29986:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54980,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"30024: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":54972,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29952:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29962:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29952: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":54981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29952:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54982,"nodeType":"ExpressionStatement","src":"29952:83:91"}]}},"id":54985,"nodeType":"IfStatement","src":"29765:281:91","trueBody":{"id":54967,"nodeType":"Block","src":"29796:106:91","statements":[{"expression":{"arguments":[{"id":54960,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29844:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54963,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"29876:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54961,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29854:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29871:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29854: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":54964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29854: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":54955,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29810:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29820:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29810: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":54959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54958,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29832:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29810: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":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54966,"nodeType":"ExpressionStatement","src":"29810:81:91"}]}},{"assignments":[null,null,54987,null,54989],"declarations":[null,null,{"constant":false,"id":54987,"mutability":"mutable","name":"nonce","nameLocation":"30069:5:91","nodeType":"VariableDeclaration","scope":55021,"src":"30061:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54986,"name":"uint256","nodeType":"ElementaryTypeName","src":"30061:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54989,"mutability":"mutable","name":"circSupply","nameLocation":"30086:10:91","nodeType":"VariableDeclaration","scope":55021,"src":"30078:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54988,"name":"uint256","nodeType":"ElementaryTypeName","src":"30078:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54996,"initialValue":{"arguments":[{"arguments":[{"id":54993,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30118:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30110:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"30110:7:91","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30110:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54990,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"30100: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":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30100: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":"30056:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55000,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"30184: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":54998,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"30148:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30157:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30148: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":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30148:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55002,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54922,"src":"30197:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30148:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30224: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":54997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30140:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30140:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55006,"nodeType":"ExpressionStatement","src":"30140:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55008,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54987,"src":"30264:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55009,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54931,"src":"30273:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30264:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30288: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":55007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30256:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30256:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55013,"nodeType":"ExpressionStatement","src":"30256:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55015,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54989,"src":"30325:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55016,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54937,"src":"30339:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30325:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30359: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":55014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30317:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30317:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55020,"nodeType":"ExpressionStatement","src":"30317:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29219:4:91","parameters":{"id":54905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54899,"mutability":"mutable","name":"funderAddress","nameLocation":"29232:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29224:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54898,"name":"address","nodeType":"ElementaryTypeName","src":"29224:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54901,"mutability":"mutable","name":"fundAmount","nameLocation":"29255:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"29247:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54900,"name":"uint256","nodeType":"ElementaryTypeName","src":"29247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54904,"mutability":"mutable","name":"mode","nameLocation":"29278:4:91","nodeType":"VariableDeclaration","scope":55022,"src":"29267:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54903,"nodeType":"UserDefinedTypeName","pathNode":{"id":54902,"name":"SupplyKind","nameLocations":["29267:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29267:10:91"},"referencedDeclaration":50182,"src":"29267:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29223:60:91"},"returnParameters":{"id":54906,"nodeType":"ParameterList","parameters":[],"src":"29291:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55053,"nodeType":"FunctionDefinition","src":"30396:243:91","nodes":[],"body":{"id":55052,"nodeType":"Block","src":"30464:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55032,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30483:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30474:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30477:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30474:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30474:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55034,"nodeType":"ExpressionStatement","src":"30474:26:91"},{"expression":{"arguments":[{"id":55038,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30518:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55039,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30536:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30536:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55035,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30510:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30513:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30510:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30510:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55043,"nodeType":"ExpressionStatement","src":"30510:56:91"},{"expression":{"arguments":[{"id":55049,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"30625: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":55044,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30576:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30586:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30576:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55047,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30598:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30576:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30576:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55051,"nodeType":"ExpressionStatement","src":"30576:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30405:4:91","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55024,"mutability":"mutable","name":"validatorAddress","nameLocation":"30418:16:91","nodeType":"VariableDeclaration","scope":55053,"src":"30410:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55023,"name":"address","nodeType":"ElementaryTypeName","src":"30410:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55026,"mutability":"mutable","name":"pubkey","nameLocation":"30449:6:91","nodeType":"VariableDeclaration","scope":55053,"src":"30436:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55025,"name":"bytes","nodeType":"ElementaryTypeName","src":"30436:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30409:47:91"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[],"src":"30464:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55100,"nodeType":"FunctionDefinition","src":"30645:298:91","nodes":[],"body":{"id":55099,"nodeType":"Block","src":"30713:230:91","nodes":[],"statements":[{"assignments":[55064],"declarations":[{"constant":false,"id":55064,"mutability":"mutable","name":"validators","nameLocation":"30740:10:91","nodeType":"VariableDeclaration","scope":55099,"src":"30723:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55062,"name":"address","nodeType":"ElementaryTypeName","src":"30723:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55063,"nodeType":"ArrayTypeName","src":"30723:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55070,"initialValue":{"arguments":[{"hexValue":"31","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30767: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":55067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30753: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":55065,"name":"address","nodeType":"ElementaryTypeName","src":"30757:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55066,"nodeType":"ArrayTypeName","src":"30757:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30753:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30723:46:91"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55071,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30779:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55073,"indexExpression":{"hexValue":"30","id":55072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30790: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":"30779:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55055,"src":"30795:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30779:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55076,"nodeType":"ExpressionStatement","src":"30779:25:91"},{"assignments":[55081],"declarations":[{"constant":false,"id":55081,"mutability":"mutable","name":"privKeys","nameLocation":"30832:8:91","nodeType":"VariableDeclaration","scope":55099,"src":"30815:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55079,"name":"uint256","nodeType":"ElementaryTypeName","src":"30815:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55080,"nodeType":"ArrayTypeName","src":"30815:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55087,"initialValue":{"arguments":[{"hexValue":"31","id":55085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30857: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":55084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30843: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":55082,"name":"uint256","nodeType":"ElementaryTypeName","src":"30847:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55083,"nodeType":"ArrayTypeName","src":"30847:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30843:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30815:44:91"},{"expression":{"id":55092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55088,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30869:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55090,"indexExpression":{"hexValue":"30","id":55089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30878: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":"30869:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55091,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55057,"src":"30883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30869:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55093,"nodeType":"ExpressionStatement","src":"30869:21:91"},{"expression":{"arguments":[{"id":55095,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30915:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55096,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30927: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":55094,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"30901: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":55097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30901:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55098,"nodeType":"ExpressionStatement","src":"30901:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30654:13:91","parameters":{"id":55058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55055,"mutability":"mutable","name":"validator","nameLocation":"30676:9:91","nodeType":"VariableDeclaration","scope":55100,"src":"30668:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55054,"name":"address","nodeType":"ElementaryTypeName","src":"30668:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55057,"mutability":"mutable","name":"privKey","nameLocation":"30695:7:91","nodeType":"VariableDeclaration","scope":55100,"src":"30687:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55056,"name":"uint256","nodeType":"ElementaryTypeName","src":"30687:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30667:36:91"},"returnParameters":{"id":55059,"nodeType":"ParameterList","parameters":[],"src":"30713:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55163,"nodeType":"FunctionDefinition","src":"30949:408:91","nodes":[],"body":{"id":55162,"nodeType":"Block","src":"31057:300:91","nodes":[],"statements":[{"assignments":[55115],"declarations":[{"constant":false,"id":55115,"mutability":"mutable","name":"validators","nameLocation":"31084:10:91","nodeType":"VariableDeclaration","scope":55162,"src":"31067:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55113,"name":"address","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55114,"nodeType":"ArrayTypeName","src":"31067:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55121,"initialValue":{"arguments":[{"hexValue":"32","id":55119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31111: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":55118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31097: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":55116,"name":"address","nodeType":"ElementaryTypeName","src":"31101:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55117,"nodeType":"ArrayTypeName","src":"31101:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31097:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31067:46:91"},{"expression":{"id":55126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55122,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31123:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55124,"indexExpression":{"hexValue":"30","id":55123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31134: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":"31123:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55125,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55102,"src":"31139:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31123:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55127,"nodeType":"ExpressionStatement","src":"31123:26:91"},{"expression":{"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55128,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31159:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55130,"indexExpression":{"hexValue":"31","id":55129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31170: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":"31159:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55131,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55106,"src":"31175:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31159:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55133,"nodeType":"ExpressionStatement","src":"31159:26:91"},{"assignments":[55138],"declarations":[{"constant":false,"id":55138,"mutability":"mutable","name":"privKeys","nameLocation":"31213:8:91","nodeType":"VariableDeclaration","scope":55162,"src":"31196:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55136,"name":"uint256","nodeType":"ElementaryTypeName","src":"31196:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55137,"nodeType":"ArrayTypeName","src":"31196:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55144,"initialValue":{"arguments":[{"hexValue":"32","id":55142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31238: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":55141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31224: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":55139,"name":"uint256","nodeType":"ElementaryTypeName","src":"31228:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55140,"nodeType":"ArrayTypeName","src":"31228:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31224:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31196:44:91"},{"expression":{"id":55149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55145,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31250:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55147,"indexExpression":{"hexValue":"30","id":55146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31259: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":"31250:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55148,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55104,"src":"31264:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31250:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55150,"nodeType":"ExpressionStatement","src":"31250:22:91"},{"expression":{"id":55155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55151,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31282:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55153,"indexExpression":{"hexValue":"31","id":55152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31291: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":"31282:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55154,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55108,"src":"31296:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31282:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55156,"nodeType":"ExpressionStatement","src":"31282:22:91"},{"expression":{"arguments":[{"id":55158,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31329:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55159,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31341: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":55157,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31315: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":55160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31315:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55161,"nodeType":"ExpressionStatement","src":"31315:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30958:13:91","parameters":{"id":55109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55102,"mutability":"mutable","name":"validator1","nameLocation":"30980:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"30972:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55101,"name":"address","nodeType":"ElementaryTypeName","src":"30972:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55104,"mutability":"mutable","name":"privKey1","nameLocation":"31000:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"30992:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55103,"name":"uint256","nodeType":"ElementaryTypeName","src":"30992:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55106,"mutability":"mutable","name":"validator2","nameLocation":"31018:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31010:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55105,"name":"address","nodeType":"ElementaryTypeName","src":"31010:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55108,"mutability":"mutable","name":"privKey2","nameLocation":"31038:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31030:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55107,"name":"uint256","nodeType":"ElementaryTypeName","src":"31030:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30971:76:91"},"returnParameters":{"id":55110,"nodeType":"ParameterList","parameters":[],"src":"31057:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55242,"nodeType":"FunctionDefinition","src":"31363:568:91","nodes":[],"body":{"id":55241,"nodeType":"Block","src":"31563:368:91","nodes":[],"statements":[{"assignments":[55182],"declarations":[{"constant":false,"id":55182,"mutability":"mutable","name":"validators","nameLocation":"31590:10:91","nodeType":"VariableDeclaration","scope":55241,"src":"31573:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55180,"name":"address","nodeType":"ElementaryTypeName","src":"31573:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55181,"nodeType":"ArrayTypeName","src":"31573:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55188,"initialValue":{"arguments":[{"hexValue":"33","id":55186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31617: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":55185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31603: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":55183,"name":"address","nodeType":"ElementaryTypeName","src":"31607:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55184,"nodeType":"ArrayTypeName","src":"31607:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31573:46:91"},{"expression":{"id":55193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55189,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31629:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55191,"indexExpression":{"hexValue":"30","id":55190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31640: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":"31629:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55192,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55165,"src":"31645:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31629:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55194,"nodeType":"ExpressionStatement","src":"31629:26:91"},{"expression":{"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55195,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31665:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55197,"indexExpression":{"hexValue":"31","id":55196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31676: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":"31665:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55198,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55169,"src":"31681:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31665:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55200,"nodeType":"ExpressionStatement","src":"31665:26:91"},{"expression":{"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55201,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31701:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55203,"indexExpression":{"hexValue":"32","id":55202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31712: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":"31701:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55204,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55173,"src":"31717:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31701:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55206,"nodeType":"ExpressionStatement","src":"31701:26:91"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"privKeys","nameLocation":"31755:8:91","nodeType":"VariableDeclaration","scope":55241,"src":"31738:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55209,"name":"uint256","nodeType":"ElementaryTypeName","src":"31738:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55210,"nodeType":"ArrayTypeName","src":"31738:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55217,"initialValue":{"arguments":[{"hexValue":"33","id":55215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31780: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":55214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31766: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":55212,"name":"uint256","nodeType":"ElementaryTypeName","src":"31770:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55213,"nodeType":"ArrayTypeName","src":"31770:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31766:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31738:44:91"},{"expression":{"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55218,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31792:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55220,"indexExpression":{"hexValue":"30","id":55219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31801: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":"31792:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55221,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55167,"src":"31806:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31792:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55223,"nodeType":"ExpressionStatement","src":"31792:22:91"},{"expression":{"id":55228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55224,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31824:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55226,"indexExpression":{"hexValue":"31","id":55225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31833: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":"31824:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55227,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55171,"src":"31838:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31824:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55229,"nodeType":"ExpressionStatement","src":"31824:22:91"},{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55230,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31856:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55232,"indexExpression":{"hexValue":"32","id":55231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31865: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":"31856:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55233,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55175,"src":"31870:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31856:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55235,"nodeType":"ExpressionStatement","src":"31856:22:91"},{"expression":{"arguments":[{"id":55237,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31903:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55238,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31915: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":55236,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31889: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":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31889:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55240,"nodeType":"ExpressionStatement","src":"31889:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31372:13:91","parameters":{"id":55176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55165,"mutability":"mutable","name":"validator1","nameLocation":"31403:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31395:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55164,"name":"address","nodeType":"ElementaryTypeName","src":"31395:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55167,"mutability":"mutable","name":"privKey1","nameLocation":"31431:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31423:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55166,"name":"uint256","nodeType":"ElementaryTypeName","src":"31423:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55169,"mutability":"mutable","name":"validator2","nameLocation":"31457:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31449:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55168,"name":"address","nodeType":"ElementaryTypeName","src":"31449:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55171,"mutability":"mutable","name":"privKey2","nameLocation":"31485:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31477:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55170,"name":"uint256","nodeType":"ElementaryTypeName","src":"31477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55173,"mutability":"mutable","name":"validator3","nameLocation":"31511:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31503:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55172,"name":"address","nodeType":"ElementaryTypeName","src":"31503:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55175,"mutability":"mutable","name":"privKey3","nameLocation":"31539:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31531:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55174,"name":"uint256","nodeType":"ElementaryTypeName","src":"31531:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31385:168:91"},"returnParameters":{"id":55177,"nodeType":"ParameterList","parameters":[],"src":"31563:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55393,"nodeType":"FunctionDefinition","src":"31937:1107:91","nodes":[],"body":{"id":55392,"nodeType":"Block","src":"32025:1019:91","nodes":[],"statements":[{"assignments":[55252],"declarations":[{"constant":false,"id":55252,"mutability":"mutable","name":"n","nameLocation":"32043:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32035:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55251,"name":"uint256","nodeType":"ElementaryTypeName","src":"32035:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55255,"initialValue":{"expression":{"id":55253,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32047:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32058:6:91","memberName":"length","nodeType":"MemberAccess","src":"32047:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32035:29:91"},{"assignments":[55260],"declarations":[{"constant":false,"id":55260,"mutability":"mutable","name":"signatures","nameLocation":"32090:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32075:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55258,"name":"bytes","nodeType":"ElementaryTypeName","src":"32075:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55259,"nodeType":"ArrayTypeName","src":"32075:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55266,"initialValue":{"arguments":[{"id":55264,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32115:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32103: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":55261,"name":"bytes","nodeType":"ElementaryTypeName","src":"32107:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55262,"nodeType":"ArrayTypeName","src":"32107:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32103:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32075:42:91"},{"assignments":[55268,null],"declarations":[{"constant":false,"id":55268,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32136:13:91","nodeType":"VariableDeclaration","scope":55392,"src":"32129:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55267,"name":"uint64","nodeType":"ElementaryTypeName","src":"32129:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32155:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32164:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32155:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32155:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32128:61:91"},{"assignments":[55274],"declarations":[{"constant":false,"id":55274,"mutability":"mutable","name":"h","nameLocation":"32208:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32200:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55273,"name":"uint256","nodeType":"ElementaryTypeName","src":"32200:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55282,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55275,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32212:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32221:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32212:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32212:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55278,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32254:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32263:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32254:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32254:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32212:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32200:84:91"},{"assignments":[55285],"declarations":[{"constant":false,"id":55285,"mutability":"mutable","name":"checkpoint","nameLocation":"32321:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32295:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55284,"nodeType":"UserDefinedTypeName","pathNode":{"id":55283,"name":"BottomUpCheckpoint","nameLocations":["32295:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32295:18:91"},"referencedDeclaration":49885,"src":"32295:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55307,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55293,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32421:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32413:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55291,"name":"address","nodeType":"ElementaryTypeName","src":"32413:7:91","typeDescriptions":{}}},"id":55294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32413:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55287,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32377:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32386:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32377:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32398:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32377: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":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55296,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32459:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55300,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32506:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32495:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32499:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32495:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32495:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55297,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32485:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32485:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55303,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"32548:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32548: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":55286,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32334:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32367:8:91","32446:11:91","32474:9:91","32523:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32334:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32295:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55313,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32603:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32595:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55311,"name":"address","nodeType":"ElementaryTypeName","src":"32595:7:91","typeDescriptions":{}}},"id":55314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32595:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32615: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":55308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32587:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32590:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32587:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32587:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55317,"nodeType":"ExpressionStatement","src":"32587:38:91"},{"assignments":[55319],"declarations":[{"constant":false,"id":55319,"mutability":"mutable","name":"hash","nameLocation":"32644:4:91","nodeType":"VariableDeclaration","scope":55392,"src":"32636:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32636:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55326,"initialValue":{"arguments":[{"arguments":[{"id":55323,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32672: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":55321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32661:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32665:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32661:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32661:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55320,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32651:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32651:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32636:48:91"},{"body":{"id":55362,"nodeType":"Block","src":"32727:140:91","statements":[{"assignments":[55338,55340,55342],"declarations":[{"constant":false,"id":55338,"mutability":"mutable","name":"v","nameLocation":"32748:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32742:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55337,"name":"uint8","nodeType":"ElementaryTypeName","src":"32742:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55340,"mutability":"mutable","name":"r","nameLocation":"32759:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32751:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32751:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55342,"mutability":"mutable","name":"s","nameLocation":"32770:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32762:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32762:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55350,"initialValue":{"arguments":[{"baseExpression":{"id":55345,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55248,"src":"32783:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55347,"indexExpression":{"id":55346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32792:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32783:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55348,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55319,"src":"32796:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55343,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32775:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32778:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32775: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":55349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32775:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32741:60:91"},{"expression":{"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55351,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"32815:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55353,"indexExpression":{"id":55352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32826:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32815:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55356,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"32848:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55342,"src":"32851:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"32854: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":55354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32831:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32835:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32831:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32831:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32815:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55361,"nodeType":"ExpressionStatement","src":"32815:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32715:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55332,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32719:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32715:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55363,"initializationExpression":{"assignments":[55328],"declarations":[{"constant":false,"id":55328,"mutability":"mutable","name":"i","nameLocation":"32708:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32700:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55327,"name":"uint256","nodeType":"ElementaryTypeName","src":"32700:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55330,"initialValue":{"hexValue":"30","id":55329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32712:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32700:13:91"},"loopExpression":{"expression":{"id":55335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32722:3:91","subExpression":{"id":55334,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55336,"nodeType":"ExpressionStatement","src":"32722:3:91"},"nodeType":"ForStatement","src":"32695:172:91"},{"body":{"id":55390,"nodeType":"Block","src":"32909:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55377,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32932:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55379,"indexExpression":{"id":55378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32943:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32932:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55374,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32923:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32926:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32923:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32923:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55381,"nodeType":"ExpressionStatement","src":"32923:23:91"},{"expression":{"arguments":[{"id":55385,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32992:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55386,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"33004:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55387,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"33016: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":55382,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"32960:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32975:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32960: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":55388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55389,"nodeType":"ExpressionStatement","src":"32960:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32897:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55369,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32901:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32897:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55391,"initializationExpression":{"assignments":[55365],"declarations":[{"constant":false,"id":55365,"mutability":"mutable","name":"i","nameLocation":"32890:1:91","nodeType":"VariableDeclaration","scope":55391,"src":"32882:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55364,"name":"uint256","nodeType":"ElementaryTypeName","src":"32882:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55367,"initialValue":{"hexValue":"30","id":55366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32882:13:91"},"loopExpression":{"expression":{"id":55372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32904:3:91","subExpression":{"id":55371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32904:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55373,"nodeType":"ExpressionStatement","src":"32904:3:91"},"nodeType":"ForStatement","src":"32877:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31946:13:91","parameters":{"id":55249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55245,"mutability":"mutable","name":"validators","nameLocation":"31977:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"31960:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55243,"name":"address","nodeType":"ElementaryTypeName","src":"31960:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55244,"nodeType":"ArrayTypeName","src":"31960:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55248,"mutability":"mutable","name":"privKeys","nameLocation":"32006:8:91","nodeType":"VariableDeclaration","scope":55393,"src":"31989:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55246,"name":"uint256","nodeType":"ElementaryTypeName","src":"31989:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55247,"nodeType":"ArrayTypeName","src":"31989:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31959:56:91"},"returnParameters":{"id":55250,"nodeType":"ParameterList","parameters":[],"src":"32025:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55428,"nodeType":"FunctionDefinition","src":"33050:305:91","nodes":[],"body":{"id":55427,"nodeType":"Block","src":"33097:258:91","nodes":[],"statements":[{"assignments":[55399],"declarations":[{"constant":false,"id":55399,"mutability":"mutable","name":"expectedNonce","nameLocation":"33115:13:91","nodeType":"VariableDeclaration","scope":55427,"src":"33107:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55398,"name":"uint256","nodeType":"ElementaryTypeName","src":"33107:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55405,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55400,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33131:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33140:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33131:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33131:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33158:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33131:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33107:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55413,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33231:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33235:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33231:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55411,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33209:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33226:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33209: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":55415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33209: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":55406,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33169:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33179:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33169:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55409,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55395,"src":"33194:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33169:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33169:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55417,"nodeType":"ExpressionStatement","src":"33169:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55419,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33261:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33270:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33261:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33261:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55422,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55399,"src":"33289:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33261:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33304: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":55418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33253:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33253:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55426,"nodeType":"ExpressionStatement","src":"33253:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33059:7:91","parameters":{"id":55396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55395,"mutability":"mutable","name":"releaseAmount","nameLocation":"33075:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33067:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55394,"name":"uint256","nodeType":"ElementaryTypeName","src":"33067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33066:23:91"},"returnParameters":{"id":55397,"nodeType":"ParameterList","parameters":[],"src":"33097:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55483,"nodeType":"FunctionDefinition","src":"33361:536:91","nodes":[],"body":{"id":55482,"nodeType":"Block","src":"33430:467:91","nodes":[],"statements":[{"assignments":[55436],"declarations":[{"constant":false,"id":55436,"mutability":"mutable","name":"balanceBefore","nameLocation":"33448:13:91","nodeType":"VariableDeclaration","scope":55482,"src":"33440:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55435,"name":"uint256","nodeType":"ElementaryTypeName","src":"33440:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55439,"initialValue":{"expression":{"id":55437,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33464:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33478:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33464:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33440:45:91"},{"assignments":[null,55441,null,null,null],"declarations":[null,{"constant":false,"id":55441,"mutability":"mutable","name":"stakedBefore","nameLocation":"33507:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33499:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55440,"name":"uint256","nodeType":"ElementaryTypeName","src":"33499:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55445,"initialValue":{"arguments":[{"id":55443,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33539:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55442,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33529: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":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33529: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":"33496:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55446,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33564:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33574:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33564:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55449,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33590:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33564:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33564:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"33564:40:91"},{"assignments":[55454],"declarations":[{"constant":false,"id":55454,"mutability":"mutable","name":"balanceAfter","nameLocation":"33623:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33615:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55453,"name":"uint256","nodeType":"ElementaryTypeName","src":"33615:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55457,"initialValue":{"expression":{"id":55455,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33638:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33652:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33638:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33615:44:91"},{"assignments":[null,55459,null,null,null],"declarations":[null,{"constant":false,"id":55459,"mutability":"mutable","name":"stakedAfter","nameLocation":"33680:11:91","nodeType":"VariableDeclaration","scope":55482,"src":"33672:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55458,"name":"uint256","nodeType":"ElementaryTypeName","src":"33672:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55463,"initialValue":{"arguments":[{"id":55461,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33711:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55460,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33701: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":55462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33701: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":"33669:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55465,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55454,"src":"33744:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55436,"src":"33760:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55467,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33776:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33760:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33744:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33789: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":55464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33736:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55472,"nodeType":"ExpressionStatement","src":"33736:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55474,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55459,"src":"33828:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"33843:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55476,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33858:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33843:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33828:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33871: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":55473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33820:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33820:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55481,"nodeType":"ExpressionStatement","src":"33820:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33370:8:91","parameters":{"id":55433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55430,"mutability":"mutable","name":"stakeAmount","nameLocation":"33387:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33379:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55429,"name":"uint256","nodeType":"ElementaryTypeName","src":"33379:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55432,"mutability":"mutable","name":"subnetAddress","nameLocation":"33408:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33400:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55431,"name":"address","nodeType":"ElementaryTypeName","src":"33400:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33378:44:91"},"returnParameters":{"id":55434,"nodeType":"ParameterList","parameters":[],"src":"33430:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55568,"nodeType":"FunctionDefinition","src":"33903:813:91","nodes":[],"body":{"id":55567,"nodeType":"Block","src":"33998:718:91","nodes":[],"statements":[{"assignments":[55495],"declarations":[{"constant":false,"id":55495,"mutability":"mutable","name":"manager","nameLocation":"34028:7:91","nodeType":"VariableDeclaration","scope":55567,"src":"34008:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55494,"nodeType":"UserDefinedTypeName","pathNode":{"id":55493,"name":"GatewayManagerFacet","nameLocations":["34008:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34008:19:91"},"referencedDeclaration":38870,"src":"34008:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55502,"initialValue":{"arguments":[{"arguments":[{"id":55499,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34066:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34058:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55497,"name":"address","nodeType":"ElementaryTypeName","src":"34058:7:91","typeDescriptions":{}}},"id":55500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34058:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55496,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34038:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34038:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34008:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34117: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":55503,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55495,"src":"34081:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34089:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34081:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55506,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34105:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34081:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55510,"nodeType":"ExpressionStatement","src":"34081:38:91"},{"assignments":[55513,55515,55517,null,55519],"declarations":[{"constant":false,"id":55513,"mutability":"mutable","name":"id","nameLocation":"34147:2:91","nodeType":"VariableDeclaration","scope":55567,"src":"34131:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55512,"nodeType":"UserDefinedTypeName","pathNode":{"id":55511,"name":"SubnetID","nameLocations":["34131:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34131:8:91"},"referencedDeclaration":50030,"src":"34131:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55515,"mutability":"mutable","name":"stake","nameLocation":"34159:5:91","nodeType":"VariableDeclaration","scope":55567,"src":"34151:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55514,"name":"uint256","nodeType":"ElementaryTypeName","src":"34151:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55517,"mutability":"mutable","name":"topDownNonce","nameLocation":"34174:12:91","nodeType":"VariableDeclaration","scope":55567,"src":"34166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55516,"name":"uint256","nodeType":"ElementaryTypeName","src":"34166:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55519,"mutability":"mutable","name":"circSupply","nameLocation":"34198:10:91","nodeType":"VariableDeclaration","scope":55567,"src":"34190:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55518,"name":"uint256","nodeType":"ElementaryTypeName","src":"34190:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55524,"initialValue":{"arguments":[{"id":55521,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34237:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55522,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34264: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":55520,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"34212: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":55523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34212: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":"34130:146:91"},{"assignments":[55527],"declarations":[{"constant":false,"id":55527,"mutability":"mutable","name":"parentNetwork","nameLocation":"34303:13:91","nodeType":"VariableDeclaration","scope":55567,"src":"34287:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55526,"nodeType":"UserDefinedTypeName","pathNode":{"id":55525,"name":"SubnetID","nameLocations":["34287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34287:8:91"},"referencedDeclaration":50030,"src":"34287:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55531,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55528,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"34319:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34328:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34319:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34319:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34287:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55533,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"34376:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34379:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34376: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":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34376:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55538,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34420:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55536,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"34391:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34405:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34391: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":55539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34435:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34391: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":55541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34376:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34457: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":55532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34355:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34355:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55545,"nodeType":"ExpressionStatement","src":"34355:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55547,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"34554:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55548,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34563:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34554:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34575: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":55546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34546:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34546:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55552,"nodeType":"ExpressionStatement","src":"34546:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55554,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55517,"src":"34612:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34628:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34612:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34631: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":55553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34604:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34604:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"34604:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55561,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55519,"src":"34668:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34682:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34668:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34685: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":55560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34660:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55566,"nodeType":"ExpressionStatement","src":"34660:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33912:16:91","parameters":{"id":55491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55485,"mutability":"mutable","name":"collateral","nameLocation":"33937:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"33929:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55484,"name":"uint256","nodeType":"ElementaryTypeName","src":"33929:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55487,"mutability":"mutable","name":"subnetAddress","nameLocation":"33957:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"33949:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55486,"name":"address","nodeType":"ElementaryTypeName","src":"33949:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55490,"mutability":"mutable","name":"gw","nameLocation":"33987:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"33972:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55489,"nodeType":"UserDefinedTypeName","pathNode":{"id":55488,"name":"GatewayDiamond","nameLocations":["33972:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"33972:14:91"},"referencedDeclaration":36170,"src":"33972:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33928:62:91"},"returnParameters":{"id":55492,"nodeType":"ParameterList","parameters":[],"src":"33998:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55582,"nodeType":"FunctionDefinition","src":"34722:150:91","nodes":[],"body":{"id":55581,"nodeType":"Block","src":"34796:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55576,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"34823:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55577,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"34835:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55578,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"34850: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":55575,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55568,"src":"34806:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34806:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55580,"nodeType":"ExpressionStatement","src":"34806:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34731:14:91","parameters":{"id":55573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55570,"mutability":"mutable","name":"collateral","nameLocation":"34754:10:91","nodeType":"VariableDeclaration","scope":55582,"src":"34746:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55569,"name":"uint256","nodeType":"ElementaryTypeName","src":"34746:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55572,"mutability":"mutable","name":"subnetAddress","nameLocation":"34774:13:91","nodeType":"VariableDeclaration","scope":55582,"src":"34766:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55571,"name":"address","nodeType":"ElementaryTypeName","src":"34766:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34745:43:91"},"returnParameters":{"id":55574,"nodeType":"ParameterList","parameters":[],"src":"34796:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55652,"nodeType":"FunctionDefinition","src":"34878:541:91","nodes":[],"body":{"id":55651,"nodeType":"Block","src":"35032:387:91","nodes":[],"statements":[{"expression":{"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55601,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"35042:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55605,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35082:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35074:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55603,"name":"address","nodeType":"ElementaryTypeName","src":"35074:7:91","typeDescriptions":{}}},"id":55606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35074:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55602,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35054:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35054:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35042:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55609,"nodeType":"ExpressionStatement","src":"35042:44:91"},{"expression":{"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55610,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35096:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55614,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35134:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35126:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55612,"name":"address","nodeType":"ElementaryTypeName","src":"35126:7:91","typeDescriptions":{}}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35126:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55611,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35107:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35107:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35096:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55618,"nodeType":"ExpressionStatement","src":"35096:42:91"},{"assignments":[55621],"declarations":[{"constant":false,"id":55621,"mutability":"mutable","name":"subnetId","nameLocation":"35165:8:91","nodeType":"VariableDeclaration","scope":55651,"src":"35149:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55620,"nodeType":"UserDefinedTypeName","pathNode":{"id":55619,"name":"SubnetID","nameLocations":["35149:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35149:8:91"},"referencedDeclaration":50030,"src":"35149:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55628,"initialValue":{"arguments":[{"id":55626,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55584,"src":"35217:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55622,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35176:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35185:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35176:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35202:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35176: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":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35149:82:91"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"subnet","nameLocation":"35256:6:91","nodeType":"VariableDeclaration","scope":55651,"src":"35242:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55630,"nodeType":"UserDefinedTypeName","pathNode":{"id":55629,"name":"Subnet","nameLocations":["35242:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35242:6:91"},"referencedDeclaration":50044,"src":"35242:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55638,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55634,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"35282:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35291:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35282: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":55636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35282:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55632,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35265:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35274:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35265: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":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35265:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35242:58:91"},{"expression":{"components":[{"expression":{"id":55639,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35319:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35326:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35319:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55641,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35330:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35337:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35330:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55643,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35344:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35351:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35344:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55645,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35365:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35372:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35365:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55647,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35394:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35401:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35394:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35318: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":55600,"id":55650,"nodeType":"Return","src":"35311:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34887:11:91","parameters":{"id":55588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55584,"mutability":"mutable","name":"subnetAddress","nameLocation":"34916:13:91","nodeType":"VariableDeclaration","scope":55652,"src":"34908:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55583,"name":"address","nodeType":"ElementaryTypeName","src":"34908:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55587,"mutability":"mutable","name":"gw","nameLocation":"34954:2:91","nodeType":"VariableDeclaration","scope":55652,"src":"34939:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55586,"nodeType":"UserDefinedTypeName","pathNode":{"id":55585,"name":"GatewayDiamond","nameLocations":["34939:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34939:14:91"},"referencedDeclaration":36170,"src":"34939:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34898:64:91"},"returnParameters":{"id":55600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34979:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55590,"nodeType":"UserDefinedTypeName","pathNode":{"id":55589,"name":"SubnetID","nameLocations":["34979:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34979:8:91"},"referencedDeclaration":50030,"src":"34979:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34996:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55592,"name":"uint256","nodeType":"ElementaryTypeName","src":"34996:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35005:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55594,"name":"uint256","nodeType":"ElementaryTypeName","src":"35005:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35014:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55596,"name":"uint256","nodeType":"ElementaryTypeName","src":"35014:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35023:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55598,"name":"uint256","nodeType":"ElementaryTypeName","src":"35023:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34978:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55674,"nodeType":"FunctionDefinition","src":"35425:177:91","nodes":[],"body":{"id":55673,"nodeType":"Block","src":"35536:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55669,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55654,"src":"35565:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55670,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"35580: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":55668,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"35553: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":55671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35553: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":55667,"id":55672,"nodeType":"Return","src":"35546:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35434:9:91","parameters":{"id":55655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55654,"mutability":"mutable","name":"subnetAddress","nameLocation":"35452:13:91","nodeType":"VariableDeclaration","scope":55674,"src":"35444:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55653,"name":"address","nodeType":"ElementaryTypeName","src":"35444:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35443:23:91"},"returnParameters":{"id":55667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35483:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55657,"nodeType":"UserDefinedTypeName","pathNode":{"id":55656,"name":"SubnetID","nameLocations":["35483:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35483:8:91"},"referencedDeclaration":50030,"src":"35483:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35500:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55659,"name":"uint256","nodeType":"ElementaryTypeName","src":"35500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35509:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55661,"name":"uint256","nodeType":"ElementaryTypeName","src":"35509:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35518:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55663,"name":"uint256","nodeType":"ElementaryTypeName","src":"35518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35527:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55665,"name":"uint256","nodeType":"ElementaryTypeName","src":"35527:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35482:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53053,"name":"Test","nameLocations":["8753:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8753:4:91"},"id":53054,"nodeType":"InheritanceSpecifier","src":"8753:4:91"},{"baseName":{"id":53055,"name":"TestParams","nameLocations":["8759:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"8759:10:91"},"id":53056,"nodeType":"InheritanceSpecifier","src":"8759:10:91"},{"baseName":{"id":53057,"name":"TestRegistry","nameLocations":["8771:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52759,"src":"8771:12:91"},"id":53058,"nodeType":"InheritanceSpecifier","src":"8771:12:91"},{"baseName":{"id":53059,"name":"TestSubnetActor","nameLocations":["8785:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53052,"src":"8785:15:91"},"id":53060,"nodeType":"InheritanceSpecifier","src":"8785:15:91"},{"baseName":{"id":53061,"name":"TestGatewayActor","nameLocations":["8802:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52888,"src":"8802:16:91"},"id":53062,"nodeType":"InheritanceSpecifier","src":"8802:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8730:19:91","scope":55676,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestBase.sol/TestGatewayActor.json b/contracts/.out/IntegrationTestBase.sol/TestGatewayActor.json new file mode 100644 index 000000000..d1f5bc4b9 --- /dev/null +++ b/contracts/.out/IntegrationTestBase.sol/TestGatewayActor.json @@ -0,0 +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$__5af4908115620008ae5760009162000886575b508051906001600160401b03821162000870576801000000000000000082116200087057602354826023558083106200080d575b5060200190602360005260206000208160031c9160005b838110620007bd5750600719811690038062000768575b604051610c8e9081620013ad8239f35b9260009360005b818110620007865750505001553880808062000758565b9091946020620007b2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200076f565b6000805b60088110620007d857508382015560010162000741565b9590602062000803600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620007c1565b60236000526020600020600780850160031c8201920160031c0190601c8460021b168062000854575b505b8181106200084757506200072a565b6000815560010162000838565b600019908183019182549160200360031b1c1690553862000836565b634e487b7160e01b600052604160045260246000fd5b620008a791503d806000833e6200089e8183620012f2565b81019062001316565b38620006f6565b6040513d6000823e3d90fd5b60009260005b600719831683038110620008de57505060031c01553880806200068f565b9093602062000909600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620008c0565b6000805b600881106200092e57508382015560010162000676565b9490602062000959600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000917565b60226000527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e510600284901b601c1680620009c8575b506007840160031c81015b6007830160031c82018110620009bb57505062000663565b60008155600101620009a3565b60001990816007870160031c8401019182549160200360031b1c1690553862000998565b62000a0491503d806000833e6200089e8183620012f2565b386200062f565b60009260005b60071983168303811062000a2f57505060031c0155388080620005ca565b9093602062000a5a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000a11565b6000805b6008811062000a7f575083820155600101620005b1565b9490602062000aaa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000a68565b60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570600284901b601c168062000b19575b506007840160031c81015b6007830160031c8201811062000b0c5750506200059e565b6000815560010162000af4565b60001990816007870160031c8401019182549160200360031b1c1690553862000ae9565b62000b5591503d806000833e6200089e8183620012f2565b386200056a565b60009260005b60071983168303811062000b8057505060031c0155388080620004f7565b9093602062000bab600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000b62565b6000805b6008811062000bd0575083820155600101620004de565b9490602062000bfb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000bb9565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000c6a575b506007840160031c81015b6007830160031c8201811062000c5d575050620004cb565b6000815560010162000c45565b60001990816007870160031c8401019182549160200360031b1c1690553862000c3a565b62000ca691503d806000833e6200089e8183620012f2565b3862000497565b60009260005b60071983168303811062000cd157505060031c015538808062000424565b9093602062000cfc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000cb3565b6000805b6008811062000d215750838201556001016200040b565b9490602062000d4c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d0a565b60206000526000805160206200203b833981519152600284901b601c168062000daa575b506007840160031c81015b6007830160031c8201811062000d9d575050620003ee565b6000815560010162000d85565b60001990816007870160031c8401019182549160200360031b1c1690553862000d7a565b62000de691503d806000833e6200089e8183620012f2565b38620003ba565b60009260005b60071983168303811062000e1157505060031c015538808062000352565b9093602062000e3c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000df3565b6000805b6008811062000e6157508382015560010162000339565b9490602062000e8c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000e4a565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000efb575b506007840160031c81015b6007830160031c8201811062000eee57505062000326565b6000815560010162000ed6565b60001990816007870160031c8401019182549160200360031b1c1690553862000ecb565b62000f3791503d806000833e6200089e8183620012f2565b38620002f2565b60009260005b60071983168303811062000f6257505060031c01553880806200027f565b9093602062000f8d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000f44565b6000805b6008811062000fb257508382015560010162000266565b9490602062000fdd600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000f9b565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806200104c575b506007840160031c81015b6007830160031c820181106200103f57505062000253565b6000815560010162001027565b60001990816007870160031c8401019182549160200360031b1c169055386200101c565b6200108891503d806000833e6200089e8183620012f2565b386200021f565b60009260005b600719831683038110620010b357505060031c0155388080620001ac565b90936020620010de600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001095565b6000805b600881106200110357508382015560010162000193565b949060206200112e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620010ec565b601c6000526020600020601c8460021b168062001180575b506007840160031c81015b6007830160031c820181106200117357505062000180565b600081556001016200115b565b60001990816007870160031c8401019182549160200360031b1c1690553862001150565b620011bc91503d806000833e6200089e8183620012f2565b386200014c565b9260009360005b818110620011e45750505060031c015538808080620000e4565b909194602062001210600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620011ca565b6000805b6008811062001236575083820155600101620000ca565b9490602062001261600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200121f565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620012b2575b505b818110620012a55750620000b7565b6000815560010162001296565b600019908183019182549160200360031b1c1690553862001294565b620012e691503d806000833e6200089e8183620012f2565b3862000083565b600080fd5b601f909101601f19168101906001600160401b038211908210176200087057604052565b906020908183820312620012ed5782516001600160401b0393848211620012ed570181601f82011215620012ed57805193841162000870578360051b90604051946200136585840187620012f2565b85528380860192820101928311620012ed578301905b8282106200138a575050505090565b81516001600160e01b031981168103620012ed5781529083019083016200137b56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220d6f03c49af2dee26675dc4952f8ec2248a8498143e049eec129a644047fffa2064736f6c63430008130033c97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb","sourceMap":"4697:1625:91:-:0;;;;;;;1594:4:2;4697:1625:91;;;;1594:4:2;4697:1625:91;;;1594:4:2;4697:1625:91;3201:4:5;4697:1625:91;;;3201:4:5;4697:1625:91;;;;5541:54;;4697:1625;3201:4:5;5541:54:91;;4697:1625;;;;;;-1:-1:-1;;;4697:1625:91;;;;1594:4:2;5541:15:91;4697:1625;5541:15;;:54;;;;;;;1594:4:2;5541:54:91;;;-1:-1:-1;;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;5509:86;4697:1625;;5509:86;4697:1625;;;;;;-1:-1:-1;4697:1625:91;;;;5509:86;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;;;;;;;;;;;5637:54;;4697:1625;3201:4:5;5637:54:91;;4697:1625;;;;;;-1:-1:-1;;;4697:1625:91;;;;1594:4:2;5541:15:91;4697:1625;5541:15;;5637:54;;;;;;;1594:4:2;5637:54:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;5605:86;4697:1625;;5605:86;4697:1625;;;;;;;;;;;5605:86;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;5735:56:91;;4697:1625;3201:4:5;5735:56:91;;4697:1625;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;5735:56;;;;;;;1594:4:2;5735:56:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;5701:90;4697:1625;;5701:90;4697:1625;;;;;;;;;;;5701:90;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;5834:55:91;;4697:1625;3201:4:5;5834:55:91;;4697:1625;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;5834:55;;;;;;;1594:4:2;5834:55:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;5801:88;4697:1625;;5801:88;4697:1625;;;;;;;;;;;5801:88;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;5920:54:91;;4697:1625;3201:4:5;5920:54:91;;4697:1625;;;;;;-1:-1:-1;;;4697:1625:91;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;5920:54;;;;;;;1594:4:2;5920:54:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4697:1625:91;1594:4:2;4697:1625:91;;;;;;-1:-1:-1;;;;;;;;;;;4697:1625:91;;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;6005:55:91;;4697:1625;3201:4:5;6005:55:91;;4697:1625;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;6005:55;;;;;;;1594:4:2;6005:55:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;5984:76;4697:1625;;5984:76;4697:1625;;;;;;;;;;;5984:76;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;6093:57:91;;4697:1625;3201:4:5;6093:57:91;;4697:1625;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;6093:57;;;;;;;1594:4:2;6093:57:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;6070:80;4697:1625;;6070:80;4697:1625;;;;;;;;;;;6070:80;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;6180:51:91;;4697:1625;3201:4:5;6180:51:91;;4697:1625;;;;;;-1:-1:-1;;;4697:1625:91;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;6180:51;;;;;;;1594:4:2;6180:51:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;6160:71;4697:1625;;6160:71;4697:1625;;;;;;;;;;;6160:71;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;-1:-1:-1;;4697:1625:91;;-1:-1:-1;;;6260:53:91;;4697:1625;3201:4:5;6260:53:91;;4697:1625;;;;;;-1:-1:-1;;;4697:1625:91;;;;;-1:-1:-1;;4697:1625:91;;;5541:15;6260:53;;;;;;;1594:4:2;6260:53:91;;;4697:1625;-1:-1:-1;4697:1625:91;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;6241:72;4697:1625;;6241:72;4697:1625;;;;;;;;;;;6241:72;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;1594:4:2;4697:1625:91;;;;;;-1:-1:-1;;;4697:1625:91;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6241:72;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;3201:4:5;4697:1625:91;;1594:4:2;4697:1625:91;6260:53;;;;;;1594:4:2;6260:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;4697:1625;;;1594:4:2;4697:1625:91;;;;;;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:71;1594:4:2;4697:1625:91;;;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:51;;;;;;1594:4:2;6180:51:91;;;;;;:::i;:::-;;;;4697:1625;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6070:80;1594:4:2;4697:1625:91;;;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:57;;;;;;1594:4:2;6093:57:91;;;;;;:::i;:::-;;;;4697:1625;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:76;1594:4:2;4697:1625:91;;;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:55;;;;;;1594:4:2;6005:55:91;;;;;;:::i;:::-;;;;4697:1625;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;-1:-1:-1;;;;;;;;;;;4697:1625:91;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5920:54;;;;;;1594:4:2;5920:54:91;;;;;;:::i;:::-;;;;4697:1625;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:88;1594:4:2;4697:1625:91;;;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:55;;;;;;1594:4:2;5834:55:91;;;;;;:::i;:::-;;;;4697:1625;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5701:90;1594:4:2;4697:1625:91;;;;;;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:56;;;;;;1594:4:2;5735:56:91;;;;;;:::i;:::-;;;;4697:1625;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:86;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;5605:86;4697:1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5637:54;;;;;;1594:4:2;5637:54:91;;;;;;:::i;:::-;;;;4697:1625;;1594:4:2;4697:1625:91;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4697:1625:91;;;;;;-1:-1:-1;4697:1625:91;;;;1594:4:2;4697:1625:91;;;;;;;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5509:86;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4697:1625:91;;1594:4:2;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;5541:54;;;;;;1594:4:2;5541:54:91;;;;;;:::i;:::-;;;;4697:1625;;;;;;;;;-1:-1:-1;;4697:1625:91;;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;4697:1625: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":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220d6f03c49af2dee26675dc4952f8ec2248a8498143e049eec129a644047fffa2064736f6c63430008130033","sourceMap":"4697:1625:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;4697:1625:91;;;;:::i;:::-;;1671:64:2;4697:1625:91;;1671:64:2;;;:::i;:::-;4697:1625:91;;;1982:18:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4697:1625:91;;;;;;;;-1:-1:-1;4697:1625:91;;;;;-1:-1:-1;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;;;-1:-1:-1;4697:1625:91;;;;;;;;;-1:-1:-1;4697:1625:91;;;;-1:-1:-1;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;4697:1625:91;;;;:::i;:::-;;1671:64:2;4697:1625:91;;1671:64:2;;;:::i;:::-;4697:1625:91;;;2899:18:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4697:1625:91;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;4697:1625:91;;;;:::i;:::-;;1671:64:2;4697:1625:91;;1671:64:2;;;:::i;:::-;4697:1625:91;;;2416:18:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4697:1625:91;;;;;;;;-1:-1:-1;4697:1625:91;;;;;-1:-1:-1;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;;;-1:-1:-1;4697:1625:91;;;;;;;;;-1:-1:-1;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;4697:1625:91;;;;:::i;:::-;;1671:64:2;4697:1625:91;;1671:64:2;;;:::i;:::-;4697:1625:91;;;2592:26:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4697:1625:91;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4697:1625:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4697:1625:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4697:1625:91;;;;;;;;;;;;;;;;;1671:64:2;4697:1625:91;1671:64:2;;;;;;;;;;;4697:1625:91;1671:64:2;:::o;:::-;4697:1625:91;;;1671:64:2;;;;;;;;;;4697:1625:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;4697:1625:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;4697:1625:91;;;2196:43:2;;;4697:1625:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;4697:1625:91;;-1:-1:-1;1671:64:2;;4697:1625:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;4697:1625:91;1671:64:2;2086:175;;;4697:1625:91;;;;;;1671:64:2;4697:1625:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;4697:1625:91;;;1671:64:2;4697:1625:91;;;-1:-1:-1;;4697:1625:91;2196:43:2;1671:64;4697:1625:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;4697:1625:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;4697:1625:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;4697:1625:91;1671:64:2;;;4697:1625:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;4697:1625:91;1671:64:2;4697:1625: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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"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":55676,"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":[55675],"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":[57060],"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":[58922],"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":[52888],"TestParams":[52695],"TestRegistry":[52759],"TestSubnetActor":[53052],"TestUtils":[57848],"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:35559: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":55676,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52531,"nodeType":"ImportDirective","src":"139:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52529,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"147:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52530,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"160:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52533,"nodeType":"ImportDirective","src":"212:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52532,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"220:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52535,"nodeType":"ImportDirective","src":"274:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"282:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52540,"nodeType":"ImportDirective","src":"331:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52536,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"339:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52537,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"349:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"369:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"382:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52542,"nodeType":"ImportDirective","src":"434:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52541,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"442:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"492:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52543,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"500:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"510:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"522:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"538:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"554:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"562:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"576:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"588:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"633:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52552,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"641:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"695:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"703:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"761:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52556,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"769:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"823:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52558,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"831:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"891:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52560,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"899:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"948:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"956:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1006:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52564,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1014:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1072:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52566,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1080:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1146:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52568,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1154:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1226:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52570,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1234:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1303:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52572,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1311:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1384:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52574,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1392:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1465:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52576,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1473:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1550:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52578,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1558:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1634:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":58923,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"1642:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1695:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52582,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1703:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"1778:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1786:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"1857:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52586,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1865:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"1952:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52588,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1960:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2033:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52590,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2041:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2115:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52592,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2123:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2187:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52594,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2195:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52597,"nodeType":"ImportDirective","src":"2270:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52596,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2278:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52599,"nodeType":"ImportDirective","src":"2350:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52598,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2358:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52601,"nodeType":"ImportDirective","src":"2422:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52600,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2430:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52603,"nodeType":"ImportDirective","src":"2490:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52602,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2498:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52605,"nodeType":"ImportDirective","src":"2560:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57849,"symbolAliases":[{"foreign":{"id":52604,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"2568:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52607,"nodeType":"ImportDirective","src":"2611:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57061,"symbolAliases":[{"foreign":{"id":52606,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"2619:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52695,"nodeType":"ContractDefinition","src":"2675:1194:91","nodes":[{"id":52614,"nodeType":"VariableDeclaration","src":"2701:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2717:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52608,"name":"uint64","nodeType":"ElementaryTypeName","src":"2701:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52610,"name":"uint64","nodeType":"ElementaryTypeName","src":"2734:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52609,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2742:3:91","memberName":"max","nodeType":"MemberAccess","src":"2729:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2751:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2768:20:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:91","typeDescriptions":{}}},"id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2848:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2864:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2848:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2889:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2896:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2913:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52624,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2956:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2971:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2956:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3001:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3009:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3025:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52630,"name":"uint64","nodeType":"ElementaryTypeName","src":"3009:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3053:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3066:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3082:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52633,"name":"uint64","nodeType":"ElementaryTypeName","src":"3066:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52638,"nodeType":"VariableDeclaration","src":"3118:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3134:16:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52636,"name":"string","nodeType":"ElementaryTypeName","src":"3118:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3153:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3168:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3183:7:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52639,"name":"bytes","nodeType":"ElementaryTypeName","src":"3168:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52640,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3193:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52644,"nodeType":"VariableDeclaration","src":"3210:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3227:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3264:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3281:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52645,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52653,"nodeType":"VariableDeclaration","src":"3319:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3336:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"3319:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368: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":52650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3360:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:91","typeDescriptions":{}}},"id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52659,"nodeType":"VariableDeclaration","src":"3377:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3394:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52654,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428: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":52656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3420:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:91","typeDescriptions":{}}},"id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3420:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3437:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3453:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52660,"name":"uint64","nodeType":"ElementaryTypeName","src":"3437:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52662,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3469:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3465:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52667,"nodeType":"VariableDeclaration","src":"3500:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3517:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3556:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3572:31:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52668,"name":"uint16","nodeType":"ElementaryTypeName","src":"3556:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3606:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52673,"nodeType":"VariableDeclaration","src":"3615:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3629:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52671,"name":"int8","nodeType":"ElementaryTypeName","src":"3615:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3651:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3659:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3675:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52674,"name":"uint64","nodeType":"ElementaryTypeName","src":"3659:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3702:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3719:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3745: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":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:91","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52688,"nodeType":"VariableDeclaration","src":"3753:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3770:24:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52683,"name":"address","nodeType":"ElementaryTypeName","src":"3753:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805: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":52685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3797:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:91","typeDescriptions":{}}},"id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3797:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52694,"nodeType":"VariableDeclaration","src":"3816:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3833:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52689,"name":"address","nodeType":"ElementaryTypeName","src":"3816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863: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":52691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:91","typeDescriptions":{}}},"id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52695],"name":"TestParams","nameLocation":"2684:10:91","scope":55676,"usedErrors":[]},{"id":52759,"nodeType":"ContractDefinition","src":"3871:824:91","nodes":[{"id":52702,"nodeType":"VariableDeclaration","src":"3919:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3928:28:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52700,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3919:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52701,"nodeType":"ArrayTypeName","src":"3919:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3962:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3971:34:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52703,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52704,"nodeType":"ArrayTypeName","src":"3962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"4011:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4020:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52706,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4011:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52707,"nodeType":"ArrayTypeName","src":"4011:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4049:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4058:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52709,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4049:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52710,"nodeType":"ArrayTypeName","src":"4049:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4088:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4110:15:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetRegistryDiamond","nameLocations":["4088:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4088:21:91"},"referencedDeclaration":36853,"src":"4088:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52717,"nodeType":"VariableDeclaration","src":"4131:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4149:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["4131:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4131:17:91"},"referencedDeclaration":37355,"src":"4131:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52720,"nodeType":"VariableDeclaration","src":"4169:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4185:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52719,"nodeType":"UserDefinedTypeName","pathNode":{"id":52718,"name":"DiamondCutFacet","nameLocations":["4169:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4169:15:91"},"referencedDeclaration":36918,"src":"4169:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52723,"nodeType":"VariableDeclaration","src":"4205:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4225:19:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52722,"nodeType":"UserDefinedTypeName","pathNode":{"id":52721,"name":"RegisterSubnetFacet","nameLocations":["4205:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4205:19:91"},"referencedDeclaration":52286,"src":"4205:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52726,"nodeType":"VariableDeclaration","src":"4250:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4268:25:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52725,"nodeType":"UserDefinedTypeName","pathNode":{"id":52724,"name":"SubnetGetterFacet","nameLocations":["4250:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4250:17:91"},"referencedDeclaration":52524,"src":"4250:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52758,"nodeType":"FunctionDefinition","src":"4300:393:91","nodes":[],"body":{"id":52757,"nodeType":"Block","src":"4314:379:91","nodes":[],"statements":[{"expression":{"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52729,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"4324:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4388: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":52730,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4355:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4355: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":52733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52735,"nodeType":"ExpressionStatement","src":"4324:86:91"},{"expression":{"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52736,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"4420:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4490: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":52737,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4457:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4457: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":52740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4457:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4420:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52742,"nodeType":"ExpressionStatement","src":"4420:90:91"},{"expression":{"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52743,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"4520:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4579: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":52744,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4546:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4562:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4546: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":52747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4520:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52749,"nodeType":"ExpressionStatement","src":"4520:77:91"},{"expression":{"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52750,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"4607:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4666: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":52751,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4633:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4649:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4633: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":52754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4607:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52756,"nodeType":"ExpressionStatement","src":"4607:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52727,"nodeType":"ParameterList","parameters":[],"src":"4311:2:91"},"returnParameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4314:0:91"},"scope":52759,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52696,"name":"Test","nameLocations":["3896:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3896:4:91"},"id":52697,"nodeType":"InheritanceSpecifier","src":"3896:4:91"},{"baseName":{"id":52698,"name":"TestParams","nameLocations":["3902:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"3902:10:91"},"id":52699,"nodeType":"InheritanceSpecifier","src":"3902:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3880:12:91","scope":55676,"usedErrors":[]},{"id":52888,"nodeType":"ContractDefinition","src":"4697:1625:91","nodes":[{"id":52766,"nodeType":"VariableDeclaration","src":"4749:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4758:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4749:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4749:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4793:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4802:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4793:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4793:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4837:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4846:31:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4837:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4837:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4883:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4892:30:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4883:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4883:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4929:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4938:18:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4929:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4929:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4962:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4971:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52780,"nodeType":"ArrayTypeName","src":"4962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4994:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5003:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4994:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52783,"nodeType":"ArrayTypeName","src":"4994:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"5030:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5039:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52785,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5030:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52786,"nodeType":"ArrayTypeName","src":"5030:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5062:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5071:16:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52788,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5062:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52789,"nodeType":"ArrayTypeName","src":"5062:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5094:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5109:14:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"GatewayDiamond","nameLocations":["5094:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5094:14:91"},"referencedDeclaration":36170,"src":"5094:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5129:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5149:9:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"GatewayManagerFacet","nameLocations":["5129:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5129:19:91"},"referencedDeclaration":38870,"src":"5129:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5164:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5183:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"GatewayGetterFacet","nameLocations":["5164:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5164:18:91"},"referencedDeclaration":38317,"src":"5164:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5197:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5216:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"CheckpointingFacet","nameLocations":["5197:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5197:18:91"},"referencedDeclaration":39870,"src":"5197:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5261:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"XnetMessagingFacet","nameLocations":["5242:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5242:18:91"},"referencedDeclaration":40144,"src":"5242:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5308:22:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"TopDownFinalityFacet","nameLocations":["5287:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5287:20:91"},"referencedDeclaration":40071,"src":"5287:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52811,"nodeType":"VariableDeclaration","src":"5336:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5356:21:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52810,"nodeType":"UserDefinedTypeName","pathNode":{"id":52809,"name":"BottomUpRouterFacet","nameLocations":["5336:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5336:19:91"},"referencedDeclaration":39601,"src":"5336:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52814,"nodeType":"VariableDeclaration","src":"5383:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5405:11:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52813,"nodeType":"UserDefinedTypeName","pathNode":{"id":52812,"name":"GatewayMessengerFacet","nameLocations":["5383:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5383:21:91"},"referencedDeclaration":39235,"src":"5383:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52817,"nodeType":"VariableDeclaration","src":"5422:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5438:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52816,"nodeType":"UserDefinedTypeName","pathNode":{"id":52815,"name":"DiamondCutFacet","nameLocations":["5422:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5422:15:91"},"referencedDeclaration":36918,"src":"5422:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52820,"nodeType":"VariableDeclaration","src":"5452:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5470:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52819,"nodeType":"UserDefinedTypeName","pathNode":{"id":52818,"name":"DiamondLoupeFacet","nameLocations":["5452:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5452:17:91"},"referencedDeclaration":37355,"src":"5452:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52887,"nodeType":"FunctionDefinition","src":"5485:835:91","nodes":[],"body":{"id":52886,"nodeType":"Block","src":"5499:821:91","nodes":[],"statements":[{"expression":{"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52823,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5509:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5574: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":52824,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5541:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5557:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5541: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":52827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5509:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52829,"nodeType":"ExpressionStatement","src":"5509:86:91"},{"expression":{"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5605:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5670: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":52831,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5637:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5653:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5637: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":52834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52836,"nodeType":"ExpressionStatement","src":"5605:86:91"},{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52837,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5701:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768: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":52838,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5735:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5751:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5735: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":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5701:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52843,"nodeType":"ExpressionStatement","src":"5701:90:91"},{"expression":{"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52844,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5801:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5867: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":52845,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5834:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5834: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":52848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5834:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5801:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52850,"nodeType":"ExpressionStatement","src":"5801:88:91"},{"expression":{"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52851,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"5900:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5953: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":52852,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5920:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5936:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5920: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":52855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5920:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5900:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52857,"nodeType":"ExpressionStatement","src":"5900:74:91"},{"expression":{"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52858,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"5984:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6038: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":52859,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6005:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6005: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":52862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5984:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52864,"nodeType":"ExpressionStatement","src":"5984:76:91"},{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52865,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"6070:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6126: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":52866,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6093:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6109:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6093: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":52869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6070:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52871,"nodeType":"ExpressionStatement","src":"6070:80:91"},{"expression":{"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52872,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"6160:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6213: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":52873,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6180:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6196:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6180: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":52876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6160:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52878,"nodeType":"ExpressionStatement","src":"6160:71:91"},{"expression":{"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52879,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"6241:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6293: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":52880,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6260:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6276:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6260: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":52883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6241:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52885,"nodeType":"ExpressionStatement","src":"6241:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52821,"nodeType":"ParameterList","parameters":[],"src":"5496:2:91"},"returnParameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5499:0:91"},"scope":52888,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52760,"name":"Test","nameLocations":["4726:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4726:4:91"},"id":52761,"nodeType":"InheritanceSpecifier","src":"4726:4:91"},{"baseName":{"id":52762,"name":"TestParams","nameLocations":["4732:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"4732:10:91"},"id":52763,"nodeType":"InheritanceSpecifier","src":"4732:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52888,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4706:16:91","scope":55676,"usedErrors":[]},{"id":53052,"nodeType":"ContractDefinition","src":"6324:2395:91","nodes":[{"id":52895,"nodeType":"VariableDeclaration","src":"6375:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6384:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52893,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6375:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52894,"nodeType":"ArrayTypeName","src":"6375:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52898,"nodeType":"VariableDeclaration","src":"6407:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6416:18:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52896,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6407:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52897,"nodeType":"ArrayTypeName","src":"6407:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52901,"nodeType":"VariableDeclaration","src":"6440:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"6449:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52899,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6440:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52900,"nodeType":"ArrayTypeName","src":"6440:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52904,"nodeType":"VariableDeclaration","src":"6472:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"6481:19:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6472:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52903,"nodeType":"ArrayTypeName","src":"6472:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52907,"nodeType":"VariableDeclaration","src":"6506:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"6515:23:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52905,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6506:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52906,"nodeType":"ArrayTypeName","src":"6506:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52910,"nodeType":"VariableDeclaration","src":"6544:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6553:24:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52908,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6544:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52909,"nodeType":"ArrayTypeName","src":"6544:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52913,"nodeType":"VariableDeclaration","src":"6583:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6592:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52911,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6583:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52912,"nodeType":"ArrayTypeName","src":"6583:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52916,"nodeType":"VariableDeclaration","src":"6615:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6624:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52914,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6615:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52915,"nodeType":"ArrayTypeName","src":"6615:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52919,"nodeType":"VariableDeclaration","src":"6648:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6667:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52918,"nodeType":"UserDefinedTypeName","pathNode":{"id":52917,"name":"SubnetActorDiamond","nameLocations":["6648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6648:18:91"},"referencedDeclaration":36615,"src":"6648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6682:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6706:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52921,"nodeType":"UserDefinedTypeName","pathNode":{"id":52920,"name":"SubnetActorManagerFacet","nameLocations":["6682:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"6682:23:91"},"referencedDeclaration":51946,"src":"6682:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6721:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"6737:6:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":52924,"nodeType":"UserDefinedTypeName","pathNode":{"id":52923,"name":"SubnetActorMock","nameLocations":["6721:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"6721:15:91"},"referencedDeclaration":58922,"src":"6721:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6749:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6772:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52927,"nodeType":"UserDefinedTypeName","pathNode":{"id":52926,"name":"SubnetActorGetterFacet","nameLocations":["6749:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"6749:22:91"},"referencedDeclaration":51235,"src":"6749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6786:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"6809:10:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52930,"nodeType":"UserDefinedTypeName","pathNode":{"id":52929,"name":"SubnetActorRewardFacet","nameLocations":["6786:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"6786:22:91"},"referencedDeclaration":52158,"src":"6786:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6825:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"6847:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorPauseFacet","nameLocations":["6825:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"6825:21:91"},"referencedDeclaration":51991,"src":"6825:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6861:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"6891:14:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorCheckpointingFacet","nameLocations":["6861:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"6861:29:91"},"referencedDeclaration":50577,"src":"6861:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"6912:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6928:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"DiamondCutFacet","nameLocations":["6912:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"6912:15:91"},"referencedDeclaration":36918,"src":"6912:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"6942:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6960:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"DiamondLoupeFacet","nameLocations":["6942:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"6942:17:91"},"referencedDeclaration":37355,"src":"6942:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53003,"nodeType":"FunctionDefinition","src":"6975:729:91","nodes":[],"body":{"id":53002,"nodeType":"Block","src":"6989:715:91","nodes":[],"statements":[{"expression":{"id":52951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52946,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"6999:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7052: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":52947,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7019:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7035:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7019: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":52950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6999:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52952,"nodeType":"ExpressionStatement","src":"6999:78:91"},{"expression":{"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52953,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"7087:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7141: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":52954,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7108:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7124:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7108: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":52957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7108:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7087:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52959,"nodeType":"ExpressionStatement","src":"7087:80:91"},{"expression":{"id":52965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52960,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"7177:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":52963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7230: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":52961,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7197:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7213:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7197: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":52964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7177:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52966,"nodeType":"ExpressionStatement","src":"7177:77:91"},{"expression":{"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52967,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"7264:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":52970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7319: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":52968,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7286:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7302:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7286: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":52971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7264:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52973,"nodeType":"ExpressionStatement","src":"7264:80:91"},{"expression":{"id":52979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52974,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"7354:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":52977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7413: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":52975,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7380:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7380: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":52978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7380:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7354:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52980,"nodeType":"ExpressionStatement","src":"7354:91:91"},{"expression":{"id":52986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52981,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"7455:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":52984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7515: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":52982,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7482:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7498:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7482: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":52985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7455:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52987,"nodeType":"ExpressionStatement","src":"7455:78:91"},{"expression":{"id":52993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52988,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"7543:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7596: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":52989,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7563:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7579:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7563: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":52992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7563:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7543:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52994,"nodeType":"ExpressionStatement","src":"7543:71:91"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52995,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"7624:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7677: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":52996,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7644:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7660:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7644: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":52999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7644:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7624:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53001,"nodeType":"ExpressionStatement","src":"7624:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52944,"nodeType":"ParameterList","parameters":[],"src":"6986:2:91"},"returnParameters":{"id":52945,"nodeType":"ParameterList","parameters":[],"src":"6989:0:91"},"scope":53052,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53051,"nodeType":"FunctionDefinition","src":"7710:1007:91","nodes":[],"body":{"id":53050,"nodeType":"Block","src":"7857:860:91","nodes":[],"statements":[{"assignments":[53013],"declarations":[{"constant":false,"id":53013,"mutability":"mutable","name":"native","nameLocation":"7887:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7867:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53012,"nodeType":"UserDefinedTypeName","pathNode":{"id":53011,"name":"SupplySource","nameLocations":["7867:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"7867:12:91"},"referencedDeclaration":50179,"src":"7867:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53017,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53014,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"7896:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7915:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"7896:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7896:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:56:91"},{"assignments":[53022],"declarations":[{"constant":false,"id":53022,"mutability":"mutable","name":"params","nameLocation":"7977:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7933:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53021,"nodeType":"UserDefinedTypeName","pathNode":{"id":53020,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7933:18:91","7952:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7933:36:91"},"referencedDeclaration":36253,"src":"7933:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53047,"initialValue":{"arguments":[{"arguments":[{"id":53026,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"8063:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8101: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":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8087: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":53027,"name":"address","nodeType":"ElementaryTypeName","src":"8091:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53028,"nodeType":"ArrayTypeName","src":"8091:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087: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":53025,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8047:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8057:4:91","8080:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8047:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53033,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53005,"src":"8135:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53034,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8162:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8176:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8162:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53036,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8225:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53037,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8279:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53038,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"8336:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"8395:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53040,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"8459:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53041,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52673,"src":"8516:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53042,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"8565:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53043,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"8616:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8631:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"8616:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53045,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53013,"src":"8669: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":53023,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7986:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8005:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7986:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8037:8:91","8119:14:91","8151:9:91","8200:23:91","8264:13:91","8315:19:91","8375:18:91","8436:21:91","8504:10:91","8549:14:91","8600:14:91","8655:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7986:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7933:753:91"},{"expression":{"id":53048,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53022,"src":"8704:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53010,"id":53049,"nodeType":"Return","src":"8697:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7719:35:91","parameters":{"id":53006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53005,"mutability":"mutable","name":"gw","nameLocation":"7772:2:91","nodeType":"VariableDeclaration","scope":53051,"src":"7764:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53004,"name":"address","nodeType":"ElementaryTypeName","src":"7764:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7754:26:91"},"returnParameters":{"id":53010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53051,"src":"7812:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53008,"nodeType":"UserDefinedTypeName","pathNode":{"id":53007,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7812:18:91","7831:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7812:36:91"},"referencedDeclaration":36253,"src":"7812:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7811:45:91"},"scope":53052,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52889,"name":"Test","nameLocations":["6352:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6352:4:91"},"id":52890,"nodeType":"InheritanceSpecifier","src":"6352:4:91"},{"baseName":{"id":52891,"name":"TestParams","nameLocations":["6358:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"6358:10:91"},"id":52892,"nodeType":"InheritanceSpecifier","src":"6358:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53052,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6333:15:91","scope":55676,"usedErrors":[]},{"id":55675,"nodeType":"ContractDefinition","src":"8721:26883:91","nodes":[{"id":53066,"nodeType":"UsingForDirective","src":"8825:34:91","nodes":[],"global":false,"libraryName":{"id":53063,"name":"SubnetIDHelper","nameLocations":["8831:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"8831:14:91"},"typeName":{"id":53065,"nodeType":"UserDefinedTypeName","pathNode":{"id":53064,"name":"SubnetID","nameLocations":["8850:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"8850:8:91"},"referencedDeclaration":50030,"src":"8850:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53070,"nodeType":"UsingForDirective","src":"8864:42:91","nodes":[],"global":false,"libraryName":{"id":53067,"name":"SupplySourceHelper","nameLocations":["8870:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"8870:18:91"},"typeName":{"id":53069,"nodeType":"UserDefinedTypeName","pathNode":{"id":53068,"name":"SupplySource","nameLocations":["8893:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8893:12:91"},"referencedDeclaration":50179,"src":"8893:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53074,"nodeType":"UsingForDirective","src":"8911:34:91","nodes":[],"global":false,"libraryName":{"id":53071,"name":"CrossMsgHelper","nameLocations":["8917:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"8917:14:91"},"typeName":{"id":53073,"nodeType":"UserDefinedTypeName","pathNode":{"id":53072,"name":"CrossMsg","nameLocations":["8936:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"8936:8:91"},"referencedDeclaration":49927,"src":"8936:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53078,"nodeType":"UsingForDirective","src":"8950:40:91","nodes":[],"global":false,"libraryName":{"id":53075,"name":"StorableMsgHelper","nameLocations":["8956:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"8956:17:91"},"typeName":{"id":53077,"nodeType":"UserDefinedTypeName","pathNode":{"id":53076,"name":"StorableMsg","nameLocations":["8978:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"8978:11:91"},"referencedDeclaration":49944,"src":"8978:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53082,"nodeType":"UsingForDirective","src":"8995:38:91","nodes":[],"global":false,"libraryName":{"id":53079,"name":"FvmAddressHelper","nameLocations":["9001:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9001:16:91"},"typeName":{"id":53081,"nodeType":"UserDefinedTypeName","pathNode":{"id":53080,"name":"FvmAddress","nameLocations":["9022:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9022:10:91"},"referencedDeclaration":49951,"src":"9022:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53086,"nodeType":"EventDefinition","src":"9039:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9045:21:91","parameters":{"id":53085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53084,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9083:21:91","nodeType":"VariableDeclaration","scope":53086,"src":"9067:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9066:39:91"}},{"id":53090,"nodeType":"FunctionDefinition","src":"9112:16:91","nodes":[],"body":{"id":53089,"nodeType":"Block","src":"9126:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53087,"nodeType":"ParameterList","parameters":[],"src":"9123:2:91"},"returnParameters":{"id":53088,"nodeType":"ParameterList","parameters":[],"src":"9126:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53292,"nodeType":"FunctionDefinition","src":"9134:1732:91","nodes":[],"body":{"id":53291,"nodeType":"Block","src":"9166:1700:91","nodes":[],"statements":[{"assignments":[53097],"declarations":[{"constant":false,"id":53097,"mutability":"mutable","name":"path","nameLocation":"9193:4:91","nodeType":"VariableDeclaration","scope":53291,"src":"9176:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53095,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53096,"nodeType":"ArrayTypeName","src":"9176:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53103,"initialValue":{"arguments":[{"hexValue":"31","id":53101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9214: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":53100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9200: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":53098,"name":"address","nodeType":"ElementaryTypeName","src":"9204:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53099,"nodeType":"ArrayTypeName","src":"9204:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9176:40:91"},{"expression":{"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53104,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53097,"src":"9226:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53106,"indexExpression":{"hexValue":"30","id":53105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231: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":"9226:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53107,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"9236:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9226:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53109,"nodeType":"ExpressionStatement","src":"9226:25:91"},{"assignments":[53114],"declarations":[{"constant":false,"id":53114,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9344:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"9304:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53113,"nodeType":"UserDefinedTypeName","pathNode":{"id":53112,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9304:14:91","9319:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9304:32:91"},"referencedDeclaration":35883,"src":"9304:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53117,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53115,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53328,"src":"9366:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9366:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9304:84:91"},{"expression":{"id":53122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9398:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53120,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53114,"src":"9436: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":53119,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"9415: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":53121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9415:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9398:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53123,"nodeType":"ExpressionStatement","src":"9398:58:91"},{"expression":{"id":53131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53124,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9467:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53128,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9505:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9497:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53126,"name":"address","nodeType":"ElementaryTypeName","src":"9497:7:91","typeDescriptions":{}}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53125,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9478:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9467:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53132,"nodeType":"ExpressionStatement","src":"9467:54:91"},{"expression":{"id":53140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53133,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9531:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53137,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9571:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9563:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9563:7:91","typeDescriptions":{}}},"id":53138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9563:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53134,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9543:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9531:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53141,"nodeType":"ExpressionStatement","src":"9531:56:91"},{"expression":{"id":53149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53142,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9597:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9647:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9639:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53144,"name":"address","nodeType":"ElementaryTypeName","src":"9639:7:91","typeDescriptions":{}}},"id":53147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9639:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53143,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9620:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9597:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53150,"nodeType":"ExpressionStatement","src":"9597:66:91"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53151,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9673:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9723:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9715:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53153,"name":"address","nodeType":"ElementaryTypeName","src":"9715:7:91","typeDescriptions":{}}},"id":53156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53152,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9696:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9673:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53159,"nodeType":"ExpressionStatement","src":"9673:66:91"},{"expression":{"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53160,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53164,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9803:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9795:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53162,"name":"address","nodeType":"ElementaryTypeName","src":"9795:7:91","typeDescriptions":{}}},"id":53165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53161,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9774:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9749:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53168,"nodeType":"ExpressionStatement","src":"9749:70:91"},{"expression":{"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53169,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52811,"src":"9829:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53173,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9881:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9873:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53171,"name":"address","nodeType":"ElementaryTypeName","src":"9873:7:91","typeDescriptions":{}}},"id":53174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53170,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9853:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9853:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9829:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53177,"nodeType":"ExpressionStatement","src":"9829:68:91"},{"expression":{"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53178,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"9907:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53182,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9951:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9943:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53180,"name":"address","nodeType":"ElementaryTypeName","src":"9943:7:91","typeDescriptions":{}}},"id":53183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9943:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53179,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9921:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9921:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9907:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53186,"nodeType":"ExpressionStatement","src":"9907:60:91"},{"expression":{"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53187,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"9977:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53191,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10014:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10006:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53189,"name":"address","nodeType":"ElementaryTypeName","src":"10006:7:91","typeDescriptions":{}}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10006:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53188,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9988:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9988:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9977:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53195,"nodeType":"ExpressionStatement","src":"9977:53:91"},{"expression":{"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53196,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"10040:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53200,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10075:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53198,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:91","typeDescriptions":{}}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10067:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53197,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10051:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10051:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10040:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53204,"nodeType":"ExpressionStatement","src":"10040:51:91"},{"assignments":[53209],"declarations":[{"constant":false,"id":53209,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10200:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"10156:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53208,"nodeType":"UserDefinedTypeName","pathNode":{"id":53207,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10156:18:91","10175:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10156:36:91"},"referencedDeclaration":36253,"src":"10156:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53216,"initialValue":{"arguments":[{"arguments":[{"id":53213,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10271:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53211,"name":"address","nodeType":"ElementaryTypeName","src":"10271:7:91","typeDescriptions":{}}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10271:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53210,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"10222: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":53215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10222:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10156:148:91"},{"expression":{"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10315:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53219,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53209,"src":"10345: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":53218,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":53911,"src":"10327: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":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10315:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53222,"nodeType":"ExpressionStatement","src":"10315:50:91"},{"expression":{"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53223,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"10375:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53227,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10419:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10411:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53225,"name":"address","nodeType":"ElementaryTypeName","src":"10411:7:91","typeDescriptions":{}}},"id":53228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10411:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53224,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"10387:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10387:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"10375:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53231,"nodeType":"ExpressionStatement","src":"10375:55:91"},{"expression":{"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53232,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"10440:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53236,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10482:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53234,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:91","typeDescriptions":{}}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53233,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"10451:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10451:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"10440:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53240,"nodeType":"ExpressionStatement","src":"10440:53:91"},{"expression":{"id":53248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53241,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10503:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53245,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10544:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10536:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"10536:7:91","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10536:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"10514:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10514:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"10503:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53249,"nodeType":"ExpressionStatement","src":"10503:52:91"},{"expression":{"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"10565:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10609:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10601:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53252,"name":"address","nodeType":"ElementaryTypeName","src":"10601:7:91","typeDescriptions":{}}},"id":53255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10601:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53251,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"10578:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10578:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"10565:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53258,"nodeType":"ExpressionStatement","src":"10565:55:91"},{"expression":{"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53259,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10630:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53263,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10685:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53261,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:91","typeDescriptions":{}}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53260,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"10647:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"10630:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53267,"nodeType":"ExpressionStatement","src":"10630:66:91"},{"expression":{"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53268,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10706:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53272,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10743:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10735:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53270,"name":"address","nodeType":"ElementaryTypeName","src":"10735:7:91","typeDescriptions":{}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53269,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10717:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10717:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10706:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53276,"nodeType":"ExpressionStatement","src":"10706:48:91"},{"expression":{"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53277,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"10764:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53281,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10799:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53279,"name":"address","nodeType":"ElementaryTypeName","src":"10791:7:91","typeDescriptions":{}}},"id":53282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53278,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10775:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10764:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53285,"nodeType":"ExpressionStatement","src":"10764:46:91"},{"expression":{"arguments":[{"id":53287,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52694,"src":"10834:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855: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":53286,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"10821:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"10821:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9143:5:91","parameters":{"id":53091,"nodeType":"ParameterList","parameters":[],"src":"9148:2:91"},"returnParameters":{"id":53092,"nodeType":"ParameterList","parameters":[],"src":"9166:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53328,"nodeType":"FunctionDefinition","src":"10872:606:91","nodes":[],"body":{"id":53327,"nodeType":"Block","src":"10976:502:91","nodes":[],"statements":[{"assignments":[53302],"declarations":[{"constant":false,"id":53302,"mutability":"mutable","name":"params","nameLocation":"11026:6:91","nodeType":"VariableDeclaration","scope":53327,"src":"10986:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53301,"nodeType":"UserDefinedTypeName","pathNode":{"id":53300,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10986:14:91","11001:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10986:32:91"},"referencedDeclaration":35883,"src":"10986:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53324,"initialValue":{"arguments":[{"arguments":[{"id":53306,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"11111:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11149: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":53309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11135: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":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11139:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53308,"nodeType":"ArrayTypeName","src":"11139:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11135: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":53305,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"11095:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11105:4:91","11128:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"11095:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53313,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"11188:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53314,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"11235:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53315,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"11290:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":53320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11366: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":53319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11350: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":53317,"nodeType":"UserDefinedTypeName","pathNode":{"id":53316,"name":"Validator","nameLocations":["11354:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"11354:9:91"},"referencedDeclaration":50164,"src":"11354:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":53318,"nodeType":"ArrayTypeName","src":"11354:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11350:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":53322,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"11405: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":53303,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"11035:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11050:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"11035:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11082:11:91","11167:19:91","11227:6:91","11270:18:91","11331:17:91","11382:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"11035:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10986:461:91"},{"expression":{"id":53325,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53302,"src":"11465:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":53297,"id":53326,"nodeType":"Return","src":"11458:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"10881:20:91","parameters":{"id":53293,"nodeType":"ParameterList","parameters":[],"src":"10901:2:91"},"returnParameters":{"id":53297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53328,"src":"10935:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10935:14:91","10950:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10935:32:91"},"referencedDeclaration":35883,"src":"10935:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10934:41:91"},"scope":55675,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":53587,"nodeType":"FunctionDefinition","src":"11484:3185:91","nodes":[],"body":{"id":53586,"nodeType":"Block","src":"11594:3075:91","nodes":[],"statements":[{"assignments":[53339],"declarations":[{"constant":false,"id":53339,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11623:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11604:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"CheckpointingFacet","nameLocations":["11604:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11604:18:91"},"referencedDeclaration":39870,"src":"11604:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53344,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53341,"nodeType":"UserDefinedTypeName","pathNode":{"id":53340,"name":"CheckpointingFacet","nameLocations":["11648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11648:18:91"},"referencedDeclaration":39870,"src":"11648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11604:64:91"},{"assignments":[53347],"declarations":[{"constant":false,"id":53347,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11697:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11678:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53346,"nodeType":"UserDefinedTypeName","pathNode":{"id":53345,"name":"XnetMessagingFacet","nameLocations":["11678:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11678:18:91"},"referencedDeclaration":40144,"src":"11678:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11718:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53349,"nodeType":"UserDefinedTypeName","pathNode":{"id":53348,"name":"XnetMessagingFacet","nameLocations":["11722:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11722:18:91"},"referencedDeclaration":40144,"src":"11722:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11718:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11678:64:91"},{"assignments":[53355],"declarations":[{"constant":false,"id":53355,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11773:20:91","nodeType":"VariableDeclaration","scope":53586,"src":"11752:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53354,"nodeType":"UserDefinedTypeName","pathNode":{"id":53353,"name":"TopDownFinalityFacet","nameLocations":["11752:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11752:20:91"},"referencedDeclaration":40071,"src":"11752:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53360,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11796:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53357,"nodeType":"UserDefinedTypeName","pathNode":{"id":53356,"name":"TopDownFinalityFacet","nameLocations":["11800:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11800:20:91"},"referencedDeclaration":40071,"src":"11800:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11796:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11752:70:91"},{"assignments":[53363],"declarations":[{"constant":false,"id":53363,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11852:19:91","nodeType":"VariableDeclaration","scope":53586,"src":"11832:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53362,"nodeType":"UserDefinedTypeName","pathNode":{"id":53361,"name":"BottomUpRouterFacet","nameLocations":["11832:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11832:19:91"},"referencedDeclaration":39601,"src":"11832:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53368,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11874:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53365,"nodeType":"UserDefinedTypeName","pathNode":{"id":53364,"name":"BottomUpRouterFacet","nameLocations":["11878:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11878:19:91"},"referencedDeclaration":39601,"src":"11878:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11874:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11832:67:91"},{"assignments":[53371],"declarations":[{"constant":false,"id":53371,"mutability":"mutable","name":"manager","nameLocation":"11930:7:91","nodeType":"VariableDeclaration","scope":53586,"src":"11910:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53370,"nodeType":"UserDefinedTypeName","pathNode":{"id":53369,"name":"GatewayManagerFacet","nameLocations":["11910:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11910:19:91"},"referencedDeclaration":38870,"src":"11910:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11940:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53373,"nodeType":"UserDefinedTypeName","pathNode":{"id":53372,"name":"GatewayManagerFacet","nameLocations":["11944:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11944:19:91"},"referencedDeclaration":38870,"src":"11944:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11940:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11910:55:91"},{"assignments":[53379],"declarations":[{"constant":false,"id":53379,"mutability":"mutable","name":"getter","nameLocation":"11994:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"11975:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53378,"nodeType":"UserDefinedTypeName","pathNode":{"id":53377,"name":"GatewayGetterFacet","nameLocations":["11975:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11975:18:91"},"referencedDeclaration":38317,"src":"11975:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12003:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53381,"nodeType":"UserDefinedTypeName","pathNode":{"id":53380,"name":"GatewayGetterFacet","nameLocations":["12007:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12007:18:91"},"referencedDeclaration":38317,"src":"12007:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11975:52:91"},{"assignments":[53387],"declarations":[{"constant":false,"id":53387,"mutability":"mutable","name":"messenger","nameLocation":"12059:9:91","nodeType":"VariableDeclaration","scope":53586,"src":"12037:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53386,"nodeType":"UserDefinedTypeName","pathNode":{"id":53385,"name":"GatewayMessengerFacet","nameLocations":["12037:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12037:21:91"},"referencedDeclaration":39235,"src":"12037:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12071:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53389,"nodeType":"UserDefinedTypeName","pathNode":{"id":53388,"name":"GatewayMessengerFacet","nameLocations":["12075:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12075:21:91"},"referencedDeclaration":39235,"src":"12075:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12071:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12037:61:91"},{"assignments":[53395],"declarations":[{"constant":false,"id":53395,"mutability":"mutable","name":"cutter","nameLocation":"12124:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12108:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53394,"nodeType":"UserDefinedTypeName","pathNode":{"id":53393,"name":"DiamondCutFacet","nameLocations":["12108:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12108:15:91"},"referencedDeclaration":36918,"src":"12108:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53400,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12133:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53397,"nodeType":"UserDefinedTypeName","pathNode":{"id":53396,"name":"DiamondCutFacet","nameLocations":["12137:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12137:15:91"},"referencedDeclaration":36918,"src":"12137:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12133:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12108:46:91"},{"assignments":[53403],"declarations":[{"constant":false,"id":53403,"mutability":"mutable","name":"louper","nameLocation":"12182:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12164:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53402,"nodeType":"UserDefinedTypeName","pathNode":{"id":53401,"name":"DiamondLoupeFacet","nameLocations":["12164:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12164:17:91"},"referencedDeclaration":37355,"src":"12164:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53408,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12191:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53405,"nodeType":"UserDefinedTypeName","pathNode":{"id":53404,"name":"DiamondLoupeFacet","nameLocations":["12195:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12195:17:91"},"referencedDeclaration":37355,"src":"12195:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12191:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12164:50:91"},{"assignments":[53414],"declarations":[{"constant":false,"id":53414,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12252:12:91","nodeType":"VariableDeclaration","scope":53586,"src":"12225: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":53412,"nodeType":"UserDefinedTypeName","pathNode":{"id":53411,"name":"IDiamond.FacetCut","nameLocations":["12225:8:91","12234:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12225:17:91"},"referencedDeclaration":40159,"src":"12225:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53413,"nodeType":"ArrayTypeName","src":"12225:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53421,"initialValue":{"arguments":[{"hexValue":"39","id":53419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12291: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":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12267: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":53416,"nodeType":"UserDefinedTypeName","pathNode":{"id":53415,"name":"IDiamond.FacetCut","nameLocations":["12271:8:91","12280:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12271:17:91"},"referencedDeclaration":40159,"src":"12271:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53417,"nodeType":"ArrayTypeName","src":"12271:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267: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":"12225:68:91"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53422,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12304:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53424,"indexExpression":{"hexValue":"30","id":53423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317: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":"12304:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53429,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53339,"src":"12394:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12386:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53427,"name":"address","nodeType":"ElementaryTypeName","src":"12386:7:91","typeDescriptions":{}}},"id":53430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53431,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12439:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12448:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12439:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12463:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12439:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53434,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12503: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":53425,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12336:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12345:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12336:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12372:12:91","12431:6:91","12484:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12336:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12322:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12304:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53438,"nodeType":"ExpressionStatement","src":"12304:253:91"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53439,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12568:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53441,"indexExpression":{"hexValue":"36","id":53440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12581: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":"12568:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53446,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53347,"src":"12658:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12650:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53444,"name":"address","nodeType":"ElementaryTypeName","src":"12650:7:91","typeDescriptions":{}}},"id":53447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12650:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53448,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12703:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12712:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12703:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12727:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12703:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53451,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12767: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":53442,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12600:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12609:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12600:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12636:12:91","12695:6:91","12748:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12600:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12586:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12568:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53455,"nodeType":"ExpressionStatement","src":"12568:253:91"},{"expression":{"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12832:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53458,"indexExpression":{"hexValue":"37","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845: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":"12832:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53463,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53355,"src":"12922:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12914:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53461,"name":"address","nodeType":"ElementaryTypeName","src":"12914:7:91","typeDescriptions":{}}},"id":53464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12914:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12969:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12978:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12969:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12993:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12969:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53468,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13033: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":53459,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12864:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12873:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12864:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12900:12:91","12961:6:91","13014:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12864:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12850:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12832:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53472,"nodeType":"ExpressionStatement","src":"12832:257:91"},{"expression":{"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53473,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13100:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53475,"indexExpression":{"hexValue":"38","id":53474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113: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":"13100:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53480,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53363,"src":"13190:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13182:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53478,"name":"address","nodeType":"ElementaryTypeName","src":"13182:7:91","typeDescriptions":{}}},"id":53481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13182:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13236:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13245:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13236:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13260:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13236:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53485,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13300: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":53476,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13132:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13141:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13132:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13168:12:91","13228:6:91","13281:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13132:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13118:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13100:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53489,"nodeType":"ExpressionStatement","src":"13100:255:91"},{"expression":{"id":53505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53490,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13366:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53492,"indexExpression":{"hexValue":"31","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379: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":"13366:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53497,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53371,"src":"13456:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13448:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53495,"name":"address","nodeType":"ElementaryTypeName","src":"13448:7:91","typeDescriptions":{}}},"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13448:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13490:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13499:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13490:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13514:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13490:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53502,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13554: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":53493,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13398:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13407:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13398:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13434:12:91","13482:6:91","13535:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13398:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13384:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13366:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53506,"nodeType":"ExpressionStatement","src":"13366:231:91"},{"expression":{"id":53522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53507,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13608:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53509,"indexExpression":{"hexValue":"32","id":53508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621: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":"13608:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53514,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53379,"src":"13698:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13690:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53512,"name":"address","nodeType":"ElementaryTypeName","src":"13690:7:91","typeDescriptions":{}}},"id":53515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13731:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13740:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13731:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13755:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13731:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53519,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13795: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":53510,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13640:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13649:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13640:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13676:12:91","13723:6:91","13776:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13640:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13626:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13608:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53523,"nodeType":"ExpressionStatement","src":"13608:229:91"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53524,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13848:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53526,"indexExpression":{"hexValue":"33","id":53525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13861: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":"13848:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53531,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53387,"src":"13938:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13930:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53529,"name":"address","nodeType":"ElementaryTypeName","src":"13930:7:91","typeDescriptions":{}}},"id":53532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13930:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53533,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13974:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13983:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13974:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13998:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13974:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53536,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"14038: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":53527,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13880:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13889:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13880:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13916:12:91","13966:6:91","14019:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13880:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13866:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13848:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53540,"nodeType":"ExpressionStatement","src":"13848:235:91"},{"expression":{"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53541,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14094:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53543,"indexExpression":{"hexValue":"34","id":53542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107: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":"14094:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53548,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53403,"src":"14184:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14176:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53546,"name":"address","nodeType":"ElementaryTypeName","src":"14176:7:91","typeDescriptions":{}}},"id":53549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14176:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53550,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14217:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14226:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14217:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14241:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14217:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53553,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"14281: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":53544,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:91","14209:6:91","14262:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14094:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53557,"nodeType":"ExpressionStatement","src":"14094:228:91"},{"expression":{"id":53573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53558,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14333:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53560,"indexExpression":{"hexValue":"35","id":53559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346: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":"14333:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53565,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53395,"src":"14423:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14415:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53563,"name":"address","nodeType":"ElementaryTypeName","src":"14415:7:91","typeDescriptions":{}}},"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14415:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53567,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14456:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14456:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14480:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14456:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53570,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"14520: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":53561,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14365:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14365:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14401:12:91","14448:6:91","14501:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14365:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14351:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14333:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53574,"nodeType":"ExpressionStatement","src":"14333:229:91"},{"expression":{"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53575,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14573:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53579,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14609:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53580,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"14623: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":53578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14590: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":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"GatewayDiamond","nameLocations":["14594:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14594:14:91"},"referencedDeclaration":36170,"src":"14594:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14590:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14573:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53583,"nodeType":"ExpressionStatement","src":"14573:57:91"},{"expression":{"id":53584,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14648:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53336,"id":53585,"nodeType":"Return","src":"14641:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11493:20:91","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53331,"mutability":"mutable","name":"params","nameLocation":"11554:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"11514:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53330,"nodeType":"UserDefinedTypeName","pathNode":{"id":53329,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11514:14:91","11529:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11514:32:91"},"referencedDeclaration":35883,"src":"11514:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11513:48:91"},"returnParameters":{"id":53336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53587,"src":"11578:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"GatewayDiamond","nameLocations":["11578:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11578:14:91"},"referencedDeclaration":36170,"src":"11578:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11577:16:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53701,"nodeType":"FunctionDefinition","src":"14675:1613:91","nodes":[],"body":{"id":53700,"nodeType":"Block","src":"14951:1337:91","nodes":[],"statements":[{"assignments":[53611],"declarations":[{"constant":false,"id":53611,"mutability":"mutable","name":"diamondCut","nameLocation":"14988:10:91","nodeType":"VariableDeclaration","scope":53700,"src":"14961: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":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"IDiamond.FacetCut","nameLocations":["14961:8:91","14970:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14961:17:91"},"referencedDeclaration":40159,"src":"14961:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53610,"nodeType":"ArrayTypeName","src":"14961:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53618,"initialValue":{"arguments":[{"hexValue":"35","id":53616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15025: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":53615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15001: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":53613,"nodeType":"UserDefinedTypeName","pathNode":{"id":53612,"name":"IDiamond.FacetCut","nameLocations":["15005:8:91","15014:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15005:17:91"},"referencedDeclaration":40159,"src":"15005:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53614,"nodeType":"ArrayTypeName","src":"15005:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15001: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":"14961:66:91"},{"expression":{"id":53631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53619,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15038:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53621,"indexExpression":{"hexValue":"30","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15049: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":"15038:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53624,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53592,"src":"15118:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53625,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15150:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15159:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15150:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15174:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15150:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53628,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"15214: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":53622,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15068:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15077:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15068:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15104:12:91","15142:6:91","15195:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15068:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15054:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15038:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53632,"nodeType":"ExpressionStatement","src":"15038:218:91"},{"expression":{"id":53645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53633,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15267:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53635,"indexExpression":{"hexValue":"31","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15278: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":"15267:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53638,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15347:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53639,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15380:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15389:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15380:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15404:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15380:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53642,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"15444: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":53636,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15297:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15306:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15297:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15333:12:91","15372:6:91","15425:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15297:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15283:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15267:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53646,"nodeType":"ExpressionStatement","src":"15267:220:91"},{"expression":{"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53647,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15498:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53649,"indexExpression":{"hexValue":"32","id":53648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15509: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":"15498:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53652,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53596,"src":"15578:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53653,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15610:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15619:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15610:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15634:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15610:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53656,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"15674: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":53650,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15528:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15537:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15528:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15564:12:91","15602:6:91","15655:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15528:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15514:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15498:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53660,"nodeType":"ExpressionStatement","src":"15498:218:91"},{"expression":{"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53661,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15727:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53663,"indexExpression":{"hexValue":"33","id":53662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15738: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":"15727:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53666,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53598,"src":"15807:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53667,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15841:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15850:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15841:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15865:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15841:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53670,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"15905: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":53664,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15757:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15766:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15757:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15793:12:91","15833:6:91","15886:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15757:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15743:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15727:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53674,"nodeType":"ExpressionStatement","src":"15727:222:91"},{"expression":{"id":53687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15960:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53677,"indexExpression":{"hexValue":"34","id":53676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971: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":"15960:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53680,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53600,"src":"16040:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53681,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16078:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16078:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16102:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16078:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53684,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"16142: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":53678,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15990:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15990:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16026:12:91","16070:6:91","16123:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15990:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15976:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15960:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53688,"nodeType":"ExpressionStatement","src":"15960:230:91"},{"expression":{"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53689,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16201:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53693,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"16236:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53694,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"16248: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":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16213: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":53691,"nodeType":"UserDefinedTypeName","pathNode":{"id":53690,"name":"SubnetActorDiamond","nameLocations":["16217:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16217:18:91"},"referencedDeclaration":36615,"src":"16217:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16201:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53697,"nodeType":"ExpressionStatement","src":"16201:54:91"},{"expression":{"id":53698,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16272:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53605,"id":53699,"nodeType":"Return","src":"16265:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14684:35:91","parameters":{"id":53601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53590,"mutability":"mutable","name":"params","nameLocation":"14773:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14729:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14729:18:91","14748:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14729:36:91"},"referencedDeclaration":36253,"src":"14729:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53592,"mutability":"mutable","name":"getter","nameLocation":"14797:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14789:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53591,"name":"address","nodeType":"ElementaryTypeName","src":"14789:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53594,"mutability":"mutable","name":"manager","nameLocation":"14821:7:91","nodeType":"VariableDeclaration","scope":53701,"src":"14813:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53593,"name":"address","nodeType":"ElementaryTypeName","src":"14813:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53596,"mutability":"mutable","name":"pauser","nameLocation":"14846:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14838:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53595,"name":"address","nodeType":"ElementaryTypeName","src":"14838:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53598,"mutability":"mutable","name":"rewarder","nameLocation":"14870:8:91","nodeType":"VariableDeclaration","scope":53701,"src":"14862:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53597,"name":"address","nodeType":"ElementaryTypeName","src":"14862:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53600,"mutability":"mutable","name":"checkpointer","nameLocation":"14896:12:91","nodeType":"VariableDeclaration","scope":53701,"src":"14888:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53599,"name":"address","nodeType":"ElementaryTypeName","src":"14888:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14719:195:91"},"returnParameters":{"id":53605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53701,"src":"14931:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53603,"nodeType":"UserDefinedTypeName","pathNode":{"id":53602,"name":"SubnetActorDiamond","nameLocations":["14931:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14931:18:91"},"referencedDeclaration":36615,"src":"14931:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14930:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53911,"nodeType":"FunctionDefinition","src":"16294:2480:91","nodes":[],"body":{"id":53910,"nodeType":"Block","src":"16409:2365:91","nodes":[],"statements":[{"assignments":[53712],"declarations":[{"constant":false,"id":53712,"mutability":"mutable","name":"manager","nameLocation":"16443:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"16419:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53711,"nodeType":"UserDefinedTypeName","pathNode":{"id":53710,"name":"SubnetActorManagerFacet","nameLocations":["16419:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16419:23:91"},"referencedDeclaration":51946,"src":"16419:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16453:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"SubnetActorManagerFacet","nameLocations":["16457:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16457:23:91"},"referencedDeclaration":51946,"src":"16457:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16419:63:91"},{"assignments":[53720],"declarations":[{"constant":false,"id":53720,"mutability":"mutable","name":"getter","nameLocation":"16515:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16492:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53719,"nodeType":"UserDefinedTypeName","pathNode":{"id":53718,"name":"SubnetActorGetterFacet","nameLocations":["16492:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16492:22:91"},"referencedDeclaration":51235,"src":"16492:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16524:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53722,"nodeType":"UserDefinedTypeName","pathNode":{"id":53721,"name":"SubnetActorGetterFacet","nameLocations":["16528:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16528:22:91"},"referencedDeclaration":51235,"src":"16528:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16524:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16492:60:91"},{"assignments":[53728],"declarations":[{"constant":false,"id":53728,"mutability":"mutable","name":"pauser","nameLocation":"16584:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16562:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53727,"nodeType":"UserDefinedTypeName","pathNode":{"id":53726,"name":"SubnetActorPauseFacet","nameLocations":["16562:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16562:21:91"},"referencedDeclaration":51991,"src":"16562:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16593:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53730,"nodeType":"UserDefinedTypeName","pathNode":{"id":53729,"name":"SubnetActorPauseFacet","nameLocations":["16597:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16597:21:91"},"referencedDeclaration":51991,"src":"16597:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16593:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16562:58:91"},{"assignments":[53736],"declarations":[{"constant":false,"id":53736,"mutability":"mutable","name":"rewarder","nameLocation":"16653:8:91","nodeType":"VariableDeclaration","scope":53910,"src":"16630:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53735,"nodeType":"UserDefinedTypeName","pathNode":{"id":53734,"name":"SubnetActorRewardFacet","nameLocations":["16630:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16630:22:91"},"referencedDeclaration":52158,"src":"16630:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16664:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53738,"nodeType":"UserDefinedTypeName","pathNode":{"id":53737,"name":"SubnetActorRewardFacet","nameLocations":["16668:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16668:22:91"},"referencedDeclaration":52158,"src":"16668:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16664:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16630:62:91"},{"assignments":[53744],"declarations":[{"constant":false,"id":53744,"mutability":"mutable","name":"checkpointer","nameLocation":"16732:12:91","nodeType":"VariableDeclaration","scope":53910,"src":"16702:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"SubnetActorCheckpointingFacet","nameLocations":["16702:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16702:29:91"},"referencedDeclaration":50577,"src":"16702:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53749,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16747:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53746,"nodeType":"UserDefinedTypeName","pathNode":{"id":53745,"name":"SubnetActorCheckpointingFacet","nameLocations":["16751:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16751:29:91"},"referencedDeclaration":50577,"src":"16751:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16702:80:91"},{"assignments":[53752],"declarations":[{"constant":false,"id":53752,"mutability":"mutable","name":"louper","nameLocation":"16811:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16793:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53751,"nodeType":"UserDefinedTypeName","pathNode":{"id":53750,"name":"DiamondLoupeFacet","nameLocations":["16793:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16793:17:91"},"referencedDeclaration":37355,"src":"16793:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53757,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16820:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"DiamondLoupeFacet","nameLocations":["16824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16824:17:91"},"referencedDeclaration":37355,"src":"16824:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16820:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16793:50:91"},{"assignments":[53760],"declarations":[{"constant":false,"id":53760,"mutability":"mutable","name":"cutter","nameLocation":"16869:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16853:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53759,"nodeType":"UserDefinedTypeName","pathNode":{"id":53758,"name":"DiamondCutFacet","nameLocations":["16853:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16853:15:91"},"referencedDeclaration":36918,"src":"16853:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53765,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16878:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53762,"nodeType":"UserDefinedTypeName","pathNode":{"id":53761,"name":"DiamondCutFacet","nameLocations":["16882:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16882:15:91"},"referencedDeclaration":36918,"src":"16882:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16878:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16853:46:91"},{"assignments":[53771],"declarations":[{"constant":false,"id":53771,"mutability":"mutable","name":"diamondCut","nameLocation":"16937:10:91","nodeType":"VariableDeclaration","scope":53910,"src":"16910: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":53769,"nodeType":"UserDefinedTypeName","pathNode":{"id":53768,"name":"IDiamond.FacetCut","nameLocations":["16910:8:91","16919:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16910:17:91"},"referencedDeclaration":40159,"src":"16910:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53770,"nodeType":"ArrayTypeName","src":"16910:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"hexValue":"37","id":53776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16974: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":53775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16950: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":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"IDiamond.FacetCut","nameLocations":["16954:8:91","16963:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16954:17:91"},"referencedDeclaration":40159,"src":"16954:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53774,"nodeType":"ArrayTypeName","src":"16954:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16950: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":"16910:66:91"},{"expression":{"id":53794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53779,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"16987:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53781,"indexExpression":{"hexValue":"30","id":53780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16998: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":"16987:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53786,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"17075:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53784,"name":"address","nodeType":"ElementaryTypeName","src":"17067:7:91","typeDescriptions":{}}},"id":53787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53788,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53791,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"17173: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":53782,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17017:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17026:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17017:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17053:12:91","17101:6:91","17154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17017:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17003:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"16987:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53795,"nodeType":"ExpressionStatement","src":"16987:229:91"},{"expression":{"id":53811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53796,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17227:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53798,"indexExpression":{"hexValue":"31","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17238: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":"17227:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53803,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53720,"src":"17315:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17307:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53801,"name":"address","nodeType":"ElementaryTypeName","src":"17307:7:91","typeDescriptions":{}}},"id":53804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17307:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53805,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17348:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17357:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17348:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17372:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17348:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53808,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"17412: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":53799,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17257:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17257:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17293:12:91","17340:6:91","17393:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17257:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17243:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17227:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53812,"nodeType":"ExpressionStatement","src":"17227:227:91"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17465:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"32","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17476: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":"17465:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53728,"src":"17553:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17545:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17545:7:91","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17545:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17595:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17586:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17610:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17586:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"17650: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":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17495:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17495:17:91","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":["17531:12:91","17578:6:91","17631:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17495:187:91","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":"17481:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17465:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17465:227:91"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17703:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"33","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17714: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":"17703:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53736,"src":"17791:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17783:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17783:7:91","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17783:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17826:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17835:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17826:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17850:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17826:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"17890: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":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17733:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17742:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17733:17:91","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":["17769:12:91","17818:6:91","17871:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17733:191:91","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":"17719:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17703:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17703:231:91"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17945:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"34","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17956: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":"17945:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18033:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18025:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:91","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18025:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18072:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18081:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18072:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18096:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18072:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"18136: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":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17975:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17984:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17975:17:91","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":["18011:12:91","18064:6:91","18117:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17975:199:91","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":"17961:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17945:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17945:239:91"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18195:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"35","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18206: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":"18195:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53760,"src":"18283:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18275:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18275:7:91","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18275:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18316:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18325:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18316:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18340:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18316:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"18380: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":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18225:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18225:17:91","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":["18261:12:91","18308:6:91","18361:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18225:187:91","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":"18211:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18195:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18195:227:91"},{"expression":{"id":53896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53881,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18433:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53883,"indexExpression":{"hexValue":"36","id":53882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18444: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":"18433:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53888,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18521:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18513:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53886,"name":"address","nodeType":"ElementaryTypeName","src":"18513:7:91","typeDescriptions":{}}},"id":53889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18513:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53890,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18554:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18563:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18554:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18578:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18554:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53893,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"18618: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":53884,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18463:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18472:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18463:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18499:12:91","18546:6:91","18599:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18463:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18449:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18433:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53897,"nodeType":"ExpressionStatement","src":"18433:227:91"},{"assignments":[53900],"declarations":[{"constant":false,"id":53900,"mutability":"mutable","name":"diamond","nameLocation":"18690:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"18671:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53899,"nodeType":"UserDefinedTypeName","pathNode":{"id":53898,"name":"SubnetActorDiamond","nameLocations":["18671:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18671:18:91"},"referencedDeclaration":36615,"src":"18671:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53907,"initialValue":{"arguments":[{"id":53904,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18723:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53905,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"18735: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":53903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18700: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":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"SubnetActorDiamond","nameLocations":["18704:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18704:18:91"},"referencedDeclaration":36615,"src":"18704:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18700:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18671:71:91"},{"expression":{"id":53908,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"18760:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53709,"id":53909,"nodeType":"Return","src":"18753:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16303:17:91","parameters":{"id":53705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53704,"mutability":"mutable","name":"params","nameLocation":"16365:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16321:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53703,"nodeType":"UserDefinedTypeName","pathNode":{"id":53702,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16321:18:91","16340:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16321:36:91"},"referencedDeclaration":36253,"src":"16321:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16320:52:91"},"returnParameters":{"id":53709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53911,"src":"16389:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53707,"nodeType":"UserDefinedTypeName","pathNode":{"id":53706,"name":"SubnetActorDiamond","nameLocations":["16389:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16389:18:91"},"referencedDeclaration":36615,"src":"16389:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16388:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53940,"nodeType":"FunctionDefinition","src":"18780:522:91","nodes":[],"body":{"id":53939,"nodeType":"Block","src":"19024:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53928,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53913,"src":"19065:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53929,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53916,"src":"19094:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53930,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53918,"src":"19118:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53931,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53920,"src":"19156:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53932,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53922,"src":"19184:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53924,"src":"19210:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53934,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19243:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19258:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19243:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19282: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":53927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":54243,"src":"19034: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":53937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19034:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53938,"nodeType":"ExpressionStatement","src":"19034:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18789:17:91","parameters":{"id":53925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53913,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18824:15:91","nodeType":"VariableDeclaration","scope":53940,"src":"18816:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53912,"name":"address","nodeType":"ElementaryTypeName","src":"18816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53916,"mutability":"mutable","name":"_consensus","nameLocation":"18863:10:91","nodeType":"VariableDeclaration","scope":53940,"src":"18849:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53915,"nodeType":"UserDefinedTypeName","pathNode":{"id":53914,"name":"ConsensusType","nameLocations":["18849:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18849:13:91"},"referencedDeclaration":37359,"src":"18849:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18891:24:91","nodeType":"VariableDeclaration","scope":53940,"src":"18883:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53917,"name":"uint256","nodeType":"ElementaryTypeName","src":"18883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53920,"mutability":"mutable","name":"_minValidators","nameLocation":"18932:14:91","nodeType":"VariableDeclaration","scope":53940,"src":"18925:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53919,"name":"uint64","nodeType":"ElementaryTypeName","src":"18925:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53922,"mutability":"mutable","name":"_checkPeriod","nameLocation":"18963:12:91","nodeType":"VariableDeclaration","scope":53940,"src":"18956:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53921,"name":"uint64","nodeType":"ElementaryTypeName","src":"18956:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53924,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"18991:19:91","nodeType":"VariableDeclaration","scope":53940,"src":"18985:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53923,"name":"uint8","nodeType":"ElementaryTypeName","src":"18985:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18806:210:91"},"returnParameters":{"id":53926,"nodeType":"ParameterList","parameters":[],"src":"19024:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54243,"nodeType":"FunctionDefinition","src":"19308:3730:91","nodes":[],"body":{"id":54242,"nodeType":"Block","src":"19631:3407:91","nodes":[],"statements":[{"assignments":[53963],"declarations":[{"constant":false,"id":53963,"mutability":"mutable","name":"_parentId","nameLocation":"19657:9:91","nodeType":"VariableDeclaration","scope":54242,"src":"19641:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53962,"nodeType":"UserDefinedTypeName","pathNode":{"id":53961,"name":"SubnetID","nameLocations":["19641:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19641:8:91"},"referencedDeclaration":50030,"src":"19641:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53972,"initialValue":{"arguments":[{"id":53965,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"19678:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19709: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":53968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19695: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":53966,"name":"address","nodeType":"ElementaryTypeName","src":"19699:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53967,"nodeType":"ArrayTypeName","src":"19699:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19695: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":53964,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19669:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19669:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19641:71:91"},{"expression":{"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53973,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"19723:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19735:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53975,"nodeType":"UserDefinedTypeName","pathNode":{"id":53974,"name":"SubnetActorManagerFacet","nameLocations":["19739:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19739:23:91"},"referencedDeclaration":51946,"src":"19739:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19735:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19723:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53979,"nodeType":"ExpressionStatement","src":"19723:41:91"},{"expression":{"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53980,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"19774:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19785:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53982,"nodeType":"UserDefinedTypeName","pathNode":{"id":53981,"name":"SubnetActorGetterFacet","nameLocations":["19789:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19789:22:91"},"referencedDeclaration":51235,"src":"19789:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19774:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53986,"nodeType":"ExpressionStatement","src":"19774:39:91"},{"expression":{"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19823:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19834:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53989,"nodeType":"UserDefinedTypeName","pathNode":{"id":53988,"name":"SubnetActorPauseFacet","nameLocations":["19838:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19838:21:91"},"referencedDeclaration":51991,"src":"19838:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19823:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53993,"nodeType":"ExpressionStatement","src":"19823:38:91"},{"expression":{"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53994,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19871:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19888:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53996,"nodeType":"UserDefinedTypeName","pathNode":{"id":53995,"name":"SubnetActorCheckpointingFacet","nameLocations":["19892:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19892:29:91"},"referencedDeclaration":50577,"src":"19892:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19888:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19871:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54000,"nodeType":"ExpressionStatement","src":"19871:52:91"},{"expression":{"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54001,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"19933:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19946:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54003,"nodeType":"UserDefinedTypeName","pathNode":{"id":54002,"name":"SubnetActorRewardFacet","nameLocations":["19950:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19950:22:91"},"referencedDeclaration":52158,"src":"19950:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19946:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19933:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54007,"nodeType":"ExpressionStatement","src":"19933:41:91"},{"expression":{"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54008,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"19984:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19995:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54010,"nodeType":"UserDefinedTypeName","pathNode":{"id":54009,"name":"DiamondCutFacet","nameLocations":["19999:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"19999:15:91"},"referencedDeclaration":36918,"src":"19999:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19995:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19984:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54014,"nodeType":"ExpressionStatement","src":"19984:32:91"},{"expression":{"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54015,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"20026:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20037:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"DiamondLoupeFacet","nameLocations":["20041:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20041:17:91"},"referencedDeclaration":37355,"src":"20041:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20037:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20026:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54021,"nodeType":"ExpressionStatement","src":"20026:34:91"},{"assignments":[54027],"declarations":[{"constant":false,"id":54027,"mutability":"mutable","name":"diamondCut","nameLocation":"20098:10:91","nodeType":"VariableDeclaration","scope":54242,"src":"20071: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":54025,"nodeType":"UserDefinedTypeName","pathNode":{"id":54024,"name":"IDiamond.FacetCut","nameLocations":["20071:8:91","20080:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20071:17:91"},"referencedDeclaration":40159,"src":"20071:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54026,"nodeType":"ArrayTypeName","src":"20071:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54034,"initialValue":{"arguments":[{"hexValue":"37","id":54032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20135: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":54031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20111: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":54029,"nodeType":"UserDefinedTypeName","pathNode":{"id":54028,"name":"IDiamond.FacetCut","nameLocations":["20115:8:91","20124:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20115:17:91"},"referencedDeclaration":40159,"src":"20115:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54030,"nodeType":"ArrayTypeName","src":"20115:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20111: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":"20071:66:91"},{"expression":{"id":54050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54035,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54037,"indexExpression":{"hexValue":"30","id":54036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20159: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":"20148:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54042,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"20236:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20228:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54040,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:91","typeDescriptions":{}}},"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20228:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54044,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20272:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20281:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20272:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20296:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20272:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54047,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"20336: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":54038,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20178:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20187:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20178:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20214:12:91","20264:6:91","20317:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20178:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20164:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20148:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54051,"nodeType":"ExpressionStatement","src":"20148:231:91"},{"expression":{"id":54067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54052,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20390:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54054,"indexExpression":{"hexValue":"31","id":54053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20401: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":"20390:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54059,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"20478:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20470:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54057,"name":"address","nodeType":"ElementaryTypeName","src":"20470:7:91","typeDescriptions":{}}},"id":54060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20470:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54061,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20513:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20522:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20513:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20537:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20513:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54064,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"20577: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":54055,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20420:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20429:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20420:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20456:12:91","20505:6:91","20558:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20420:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20406:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20390:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54068,"nodeType":"ExpressionStatement","src":"20390:229:91"},{"expression":{"id":54084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54069,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20630:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54071,"indexExpression":{"hexValue":"32","id":54070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20641: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":"20630:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54076,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"20718:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20710:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54074,"name":"address","nodeType":"ElementaryTypeName","src":"20710:7:91","typeDescriptions":{}}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20710:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54078,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20753:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20762:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20753:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20777:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20753:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54081,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"20817: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":54072,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20660:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20669:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20660:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20696:12:91","20745:6:91","20798:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20660:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20646:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20630:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54085,"nodeType":"ExpressionStatement","src":"20630:229:91"},{"expression":{"id":54101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54086,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54088,"indexExpression":{"hexValue":"33","id":54087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20881: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":"20870:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54093,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"20958:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20950:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54091,"name":"address","nodeType":"ElementaryTypeName","src":"20950:7:91","typeDescriptions":{}}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20950:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54095,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20995:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21004:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20995:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21019:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20995:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54098,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"21059: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":54089,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20900:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20909:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20900:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20936:12:91","20987:6:91","21040:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20900:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20886:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20870:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54102,"nodeType":"ExpressionStatement","src":"20870:233:91"},{"expression":{"id":54118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54103,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21114:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54105,"indexExpression":{"hexValue":"34","id":54104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21125: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":"21114:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54110,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"21202:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21194:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54108,"name":"address","nodeType":"ElementaryTypeName","src":"21194:7:91","typeDescriptions":{}}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54112,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21243:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21252:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21243:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21243:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54115,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"21307: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":54106,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21144:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21153:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21144:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21180:12:91","21235:6:91","21288:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21144:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21130:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21114:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54119,"nodeType":"ExpressionStatement","src":"21114:241:91"},{"expression":{"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54120,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54122,"indexExpression":{"hexValue":"35","id":54121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21377: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":"21366:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54127,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"21454:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21446:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54125,"name":"address","nodeType":"ElementaryTypeName","src":"21446:7:91","typeDescriptions":{}}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54129,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21489:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21498:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21489:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21513:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21489:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54132,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"21553: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":54123,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21396:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21396:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21432:12:91","21481:6:91","21534:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21396:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21382:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21366:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54136,"nodeType":"ExpressionStatement","src":"21366:229:91"},{"expression":{"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54137,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21606:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54139,"indexExpression":{"hexValue":"36","id":54138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21617: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":"21606:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54144,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"21694:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21686:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54142,"name":"address","nodeType":"ElementaryTypeName","src":"21686:7:91","typeDescriptions":{}}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21686:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54146,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21729:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21738:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21729:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21753:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21729:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54149,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"21793: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":54140,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21636:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21645:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21636:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21672:12:91","21721:6:91","21774:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21636:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21622:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21606:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54153,"nodeType":"ExpressionStatement","src":"21606:229:91"},{"expression":{"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54154,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"21846:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54158,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21894:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54161,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53963,"src":"21983:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54162,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53942,"src":"22026:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54163,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"22070:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54164,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53947,"src":"22123:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54165,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"22180:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54166,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53951,"src":"22233:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"22283:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54168,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53958,"src":"22343:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22395:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54170,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53956,"src":"22431:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54171,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"22480:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54172,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22533:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22552:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22533:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22533: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":54159,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21918:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21937:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21918:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21973:8:91","22010:14:91","22059:9:91","22098:23:91","22165:13:91","22212:19:91","22263:18:91","22320:21:91","22383:10:91","22415:14:91","22464:14:91","22519:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21918: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":54157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21858: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":54156,"nodeType":"UserDefinedTypeName","pathNode":{"id":54155,"name":"SubnetActorDiamond","nameLocations":["21862:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21862:18:91"},"referencedDeclaration":36615,"src":"21862:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21858:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21846:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54178,"nodeType":"ExpressionStatement","src":"21846:739:91"},{"expression":{"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"22596:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54183,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54181,"name":"address","nodeType":"ElementaryTypeName","src":"22632:7:91","typeDescriptions":{}}},"id":54184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54180,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22608:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22608:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22596:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54187,"nodeType":"ExpressionStatement","src":"22596:55:91"},{"expression":{"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54188,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"22661:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54192,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22702:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22694:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54190,"name":"address","nodeType":"ElementaryTypeName","src":"22694:7:91","typeDescriptions":{}}},"id":54193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54189,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22672:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22672:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22661:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54196,"nodeType":"ExpressionStatement","src":"22661:52:91"},{"expression":{"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54197,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"22723:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54201,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22767:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22759:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54199,"name":"address","nodeType":"ElementaryTypeName","src":"22759:7:91","typeDescriptions":{}}},"id":54202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22759:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54198,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22736:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22736:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22723:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54205,"nodeType":"ExpressionStatement","src":"22723:55:91"},{"expression":{"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54206,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"22788:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54210,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22843:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22835:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54208,"name":"address","nodeType":"ElementaryTypeName","src":"22835:7:91","typeDescriptions":{}}},"id":54211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54207,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22805:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22805:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22788:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54214,"nodeType":"ExpressionStatement","src":"22788:66:91"},{"expression":{"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54215,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"22864:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54219,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22906:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22898:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54217,"name":"address","nodeType":"ElementaryTypeName","src":"22898:7:91","typeDescriptions":{}}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22898:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54216,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22875:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22864:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54223,"nodeType":"ExpressionStatement","src":"22864:53:91"},{"expression":{"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54224,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"22927:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54228,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22962:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54226,"name":"address","nodeType":"ElementaryTypeName","src":"22954:7:91","typeDescriptions":{}}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22954:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54225,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22938:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22927:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54232,"nodeType":"ExpressionStatement","src":"22927:46:91"},{"expression":{"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54233,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"22983:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54237,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"23020:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23012:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54235,"name":"address","nodeType":"ElementaryTypeName","src":"23012:7:91","typeDescriptions":{}}},"id":54238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23012:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54234,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"22994:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22994:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"22983:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54241,"nodeType":"ExpressionStatement","src":"22983:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19317:17:91","parameters":{"id":53959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53942,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19352:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19344:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53941,"name":"address","nodeType":"ElementaryTypeName","src":"19344:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53945,"mutability":"mutable","name":"_consensus","nameLocation":"19391:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"19377:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53944,"nodeType":"UserDefinedTypeName","pathNode":{"id":53943,"name":"ConsensusType","nameLocations":["19377:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19377:13:91"},"referencedDeclaration":37359,"src":"19377:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53947,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19419:24:91","nodeType":"VariableDeclaration","scope":54243,"src":"19411:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53946,"name":"uint256","nodeType":"ElementaryTypeName","src":"19411:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53949,"mutability":"mutable","name":"_minValidators","nameLocation":"19460:14:91","nodeType":"VariableDeclaration","scope":54243,"src":"19453:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53948,"name":"uint64","nodeType":"ElementaryTypeName","src":"19453:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53951,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19491:12:91","nodeType":"VariableDeclaration","scope":54243,"src":"19484:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53950,"name":"uint64","nodeType":"ElementaryTypeName","src":"19484:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53953,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19519:19:91","nodeType":"VariableDeclaration","scope":54243,"src":"19513:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53952,"name":"uint8","nodeType":"ElementaryTypeName","src":"19513:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53956,"mutability":"mutable","name":"_permissionMode","nameLocation":"19563:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19548:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"PermissionMode","nameLocations":["19548:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19548:14:91"},"referencedDeclaration":50118,"src":"19548:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53958,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19595:22:91","nodeType":"VariableDeclaration","scope":54243,"src":"19588:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53957,"name":"uint16","nodeType":"ElementaryTypeName","src":"19588:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19334:289:91"},"returnParameters":{"id":53960,"nodeType":"ParameterList","parameters":[],"src":"19631:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54336,"nodeType":"FunctionDefinition","src":"23044:997:91","nodes":[],"body":{"id":54335,"nodeType":"Block","src":"23136:905:91","nodes":[],"statements":[{"assignments":[54253],"declarations":[{"constant":false,"id":54253,"mutability":"mutable","name":"mockedManager","nameLocation":"23162:13:91","nodeType":"VariableDeclaration","scope":54335,"src":"23146:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":54252,"nodeType":"UserDefinedTypeName","pathNode":{"id":54251,"name":"SubnetActorMock","nameLocations":["23146:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23146:15:91"},"referencedDeclaration":58922,"src":"23146:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54258,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23178:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58922_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54255,"nodeType":"UserDefinedTypeName","pathNode":{"id":54254,"name":"SubnetActorMock","nameLocations":["23182:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23182:15:91"},"referencedDeclaration":58922,"src":"23182:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}},"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23178:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23146:53:91"},{"assignments":[54261],"declarations":[{"constant":false,"id":54261,"mutability":"mutable","name":"getter","nameLocation":"23232:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23209:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54260,"nodeType":"UserDefinedTypeName","pathNode":{"id":54259,"name":"SubnetActorGetterFacet","nameLocations":["23209:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23209:22:91"},"referencedDeclaration":51235,"src":"23209:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23241:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54263,"nodeType":"UserDefinedTypeName","pathNode":{"id":54262,"name":"SubnetActorGetterFacet","nameLocations":["23245:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23245:22:91"},"referencedDeclaration":51235,"src":"23245:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23209:60:91"},{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"diamondCut","nameLocation":"23307:10:91","nodeType":"VariableDeclaration","scope":54335,"src":"23280: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":54270,"nodeType":"UserDefinedTypeName","pathNode":{"id":54269,"name":"IDiamond.FacetCut","nameLocations":["23280:8:91","23289:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23280:17:91"},"referencedDeclaration":40159,"src":"23280:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54271,"nodeType":"ArrayTypeName","src":"23280:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54279,"initialValue":{"arguments":[{"hexValue":"32","id":54277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23344: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":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23320: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":54274,"nodeType":"UserDefinedTypeName","pathNode":{"id":54273,"name":"IDiamond.FacetCut","nameLocations":["23324:8:91","23333:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23324:17:91"},"referencedDeclaration":40159,"src":"23324:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54275,"nodeType":"ArrayTypeName","src":"23324:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23320: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":"23280:66:91"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54280,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23357:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54282,"indexExpression":{"hexValue":"30","id":54281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23368: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":"23357:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54287,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"23445:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}],"id":54286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23437:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54285,"name":"address","nodeType":"ElementaryTypeName","src":"23437:7:91","typeDescriptions":{}}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23437:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54289,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23485:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23485:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23509:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23485:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54292,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"23549: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":54283,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23387:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23396:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23387:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23423:12:91","23477:6:91","23530:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23387:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23373:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23357:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54296,"nodeType":"ExpressionStatement","src":"23357:241:91"},{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54297,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23609:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54299,"indexExpression":{"hexValue":"31","id":54298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23620: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":"23609:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54304,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54261,"src":"23697:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23689:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54302,"name":"address","nodeType":"ElementaryTypeName","src":"23689:7:91","typeDescriptions":{}}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23689:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54306,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23730:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23739:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23730:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23754:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23730:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54309,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"23794: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":54300,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23639:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23648:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23639:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23675:12:91","23722:6:91","23775:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23639:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23625:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23609:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54313,"nodeType":"ExpressionStatement","src":"23609:227:91"},{"assignments":[54318],"declarations":[{"constant":false,"id":54318,"mutability":"mutable","name":"params","nameLocation":"23891:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23847:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54317,"nodeType":"UserDefinedTypeName","pathNode":{"id":54316,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23847:18:91","23866:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23847:36:91"},"referencedDeclaration":36253,"src":"23847:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54322,"initialValue":{"arguments":[{"id":54320,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54245,"src":"23936:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54319,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"23900: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":54321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23900:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23847:92:91"},{"assignments":[54325],"declarations":[{"constant":false,"id":54325,"mutability":"mutable","name":"d","nameLocation":"23969:1:91","nodeType":"VariableDeclaration","scope":54335,"src":"23950:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54324,"nodeType":"UserDefinedTypeName","pathNode":{"id":54323,"name":"SubnetActorDiamond","nameLocations":["23950:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23950:18:91"},"referencedDeclaration":36615,"src":"23950:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54332,"initialValue":{"arguments":[{"id":54329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23996:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54330,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54318,"src":"24008: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":54328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23973: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":54327,"nodeType":"UserDefinedTypeName","pathNode":{"id":54326,"name":"SubnetActorDiamond","nameLocations":["23977:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23977:18:91"},"referencedDeclaration":36615,"src":"23977:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23973:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23950:65:91"},{"expression":{"id":54333,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54325,"src":"24033:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54250,"id":54334,"nodeType":"Return","src":"24026:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23053:34:91","parameters":{"id":54246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54245,"mutability":"mutable","name":"gw","nameLocation":"23096:2:91","nodeType":"VariableDeclaration","scope":54336,"src":"23088:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54244,"name":"address","nodeType":"ElementaryTypeName","src":"23088:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23087:12:91"},"returnParameters":{"id":54250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54336,"src":"23116:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54248,"nodeType":"UserDefinedTypeName","pathNode":{"id":54247,"name":"SubnetActorDiamond","nameLocations":["23116:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23116:18:91"},"referencedDeclaration":36615,"src":"23116:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23115:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54478,"nodeType":"FunctionDefinition","src":"24093:1703:91","nodes":[],"body":{"id":54477,"nodeType":"Block","src":"24231:1565:91","nodes":[],"statements":[{"assignments":[54350],"declarations":[{"constant":false,"id":54350,"mutability":"mutable","name":"diamondCut","nameLocation":"24268:10:91","nodeType":"VariableDeclaration","scope":54477,"src":"24241: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":54348,"nodeType":"UserDefinedTypeName","pathNode":{"id":54347,"name":"IDiamond.FacetCut","nameLocations":["24241:8:91","24250:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24241:17:91"},"referencedDeclaration":40159,"src":"24241:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54349,"nodeType":"ArrayTypeName","src":"24241:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54357,"initialValue":{"arguments":[{"hexValue":"34","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24305: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":54354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24281: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":54352,"nodeType":"UserDefinedTypeName","pathNode":{"id":54351,"name":"IDiamond.FacetCut","nameLocations":["24285:8:91","24294:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24285:17:91"},"referencedDeclaration":40159,"src":"24285:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54353,"nodeType":"ArrayTypeName","src":"24285:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24281: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":"24241:66:91"},{"assignments":[54360],"declarations":[{"constant":false,"id":54360,"mutability":"mutable","name":"regCutFacet","nameLocation":"24334:11:91","nodeType":"VariableDeclaration","scope":54477,"src":"24318:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54359,"nodeType":"UserDefinedTypeName","pathNode":{"id":54358,"name":"DiamondCutFacet","nameLocations":["24318:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24318:15:91"},"referencedDeclaration":36918,"src":"24318:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24348:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54362,"nodeType":"UserDefinedTypeName","pathNode":{"id":54361,"name":"DiamondCutFacet","nameLocations":["24352:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24352:15:91"},"referencedDeclaration":36918,"src":"24352:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24318:51:91"},{"assignments":[54368],"declarations":[{"constant":false,"id":54368,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24397:13:91","nodeType":"VariableDeclaration","scope":54477,"src":"24379:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54367,"nodeType":"UserDefinedTypeName","pathNode":{"id":54366,"name":"DiamondLoupeFacet","nameLocations":["24379:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24379:17:91"},"referencedDeclaration":37355,"src":"24379:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24413:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54370,"nodeType":"UserDefinedTypeName","pathNode":{"id":54369,"name":"DiamondLoupeFacet","nameLocations":["24417:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24417:17:91"},"referencedDeclaration":37355,"src":"24417:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24413:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24379:57:91"},{"assignments":[54376],"declarations":[{"constant":false,"id":54376,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24466:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24446:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54375,"nodeType":"UserDefinedTypeName","pathNode":{"id":54374,"name":"RegisterSubnetFacet","nameLocations":["24446:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24446:19:91"},"referencedDeclaration":52286,"src":"24446:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24483:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54378,"nodeType":"UserDefinedTypeName","pathNode":{"id":54377,"name":"RegisterSubnetFacet","nameLocations":["24487:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24487:19:91"},"referencedDeclaration":52286,"src":"24487:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24483:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24446:62:91"},{"assignments":[54384],"declarations":[{"constant":false,"id":54384,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24536:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24518:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54383,"nodeType":"UserDefinedTypeName","pathNode":{"id":54382,"name":"SubnetGetterFacet","nameLocations":["24518:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24518:17:91"},"referencedDeclaration":52524,"src":"24518:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54389,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24553:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54386,"nodeType":"UserDefinedTypeName","pathNode":{"id":54385,"name":"SubnetGetterFacet","nameLocations":["24557:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24557:17:91"},"referencedDeclaration":52524,"src":"24557:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24553:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24518:58:91"},{"expression":{"id":54405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54390,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24587:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54392,"indexExpression":{"hexValue":"30","id":54391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24598: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":"24587:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54397,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54368,"src":"24675:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24667:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54395,"name":"address","nodeType":"ElementaryTypeName","src":"24667:7:91","typeDescriptions":{}}},"id":54398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24667:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54399,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24715:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24724:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24715:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24739:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24715:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54402,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"24779: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":54393,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24617:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24626:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24617:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24653:12:91","24707:6:91","24760:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24617:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24603:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24587:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54406,"nodeType":"ExpressionStatement","src":"24587:240:91"},{"expression":{"id":54422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54407,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24837:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54409,"indexExpression":{"hexValue":"31","id":54408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24848: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":"24837:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54414,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54360,"src":"24925:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24917:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54412,"name":"address","nodeType":"ElementaryTypeName","src":"24917:7:91","typeDescriptions":{}}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24917:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54416,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24963:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24972:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24963:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24963:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54419,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"25027: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":54410,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24867:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24876:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24867:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24903:12:91","24955:6:91","25008:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24867:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24853:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24837:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54423,"nodeType":"ExpressionStatement","src":"24837:238:91"},{"expression":{"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54424,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25085:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54426,"indexExpression":{"hexValue":"32","id":54425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25096: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":"25085:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54431,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54376,"src":"25173:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25165:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54429,"name":"address","nodeType":"ElementaryTypeName","src":"25165:7:91","typeDescriptions":{}}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25165:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54433,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25214:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25223:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25214:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25238:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25214:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54436,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"25278: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":54427,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25124:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25115:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25151:12:91","25206:6:91","25259:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25115:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25101:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25085:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54440,"nodeType":"ExpressionStatement","src":"25085:246:91"},{"expression":{"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54441,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25341:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54443,"indexExpression":{"hexValue":"33","id":54442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25352: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":"25341:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54448,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"25429:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25421:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54446,"name":"address","nodeType":"ElementaryTypeName","src":"25421:7:91","typeDescriptions":{}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25421:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54450,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25470:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25479:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25470:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25494:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25470:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54453,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"25534: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":54444,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25371:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25380:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25371:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25407:12:91","25462:6:91","25515:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25371:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25357:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25341:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54457,"nodeType":"ExpressionStatement","src":"25341:252:91"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25626:17:91","nodeType":"VariableDeclaration","scope":54477,"src":"25604:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"SubnetRegistryDiamond","nameLocations":["25604:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25604:21:91"},"referencedDeclaration":36853,"src":"25604:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54467,"initialValue":{"arguments":[{"id":54464,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25672:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54465,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"25684: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":54463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25646: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":54462,"nodeType":"UserDefinedTypeName","pathNode":{"id":54461,"name":"SubnetRegistryDiamond","nameLocations":["25650:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25650:21:91"},"referencedDeclaration":36853,"src":"25650:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25646:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25604:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54471,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25736:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25728:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54469,"name":"address","nodeType":"ElementaryTypeName","src":"25728:7:91","typeDescriptions":{}}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25728:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54468,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53086,"src":"25706:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25706:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54474,"nodeType":"EmitStatement","src":"25701:54:91"},{"expression":{"id":54475,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25772:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54344,"id":54476,"nodeType":"Return","src":"25765:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24102:20:91","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"params","nameLocation":"24179:6:91","nodeType":"VariableDeclaration","scope":54478,"src":"24132:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54338,"nodeType":"UserDefinedTypeName","pathNode":{"id":54337,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24132:21:91","24154:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24132:39:91"},"referencedDeclaration":36652,"src":"24132:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24122:69:91"},"returnParameters":{"id":54344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54478,"src":"24208:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54342,"nodeType":"UserDefinedTypeName","pathNode":{"id":54341,"name":"SubnetRegistryDiamond","nameLocations":["24208:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24208:21:91"},"referencedDeclaration":36853,"src":"24208:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24207:23:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54507,"nodeType":"FunctionDefinition","src":"25802:190:91","nodes":[],"body":{"id":54506,"nodeType":"Block","src":"25883:109:91","nodes":[],"statements":[{"body":{"id":54502,"nodeType":"Block","src":"25924:42:91","statements":[{"expression":{"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54496,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25938:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54497,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54481,"src":"25945:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54499,"indexExpression":{"id":54498,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25945:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25938:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54501,"nodeType":"ExpressionStatement","src":"25938:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25912:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25916:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25912:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54503,"initializationExpression":{"assignments":[54487],"declarations":[{"constant":false,"id":54487,"mutability":"mutable","name":"i","nameLocation":"25905:1:91","nodeType":"VariableDeclaration","scope":54503,"src":"25898:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54486,"name":"uint64","nodeType":"ElementaryTypeName","src":"25898:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54489,"initialValue":{"hexValue":"30","id":54488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25898:12:91"},"loopExpression":{"expression":{"id":54494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25919:3:91","subExpression":{"id":54493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25919:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54495,"nodeType":"ExpressionStatement","src":"25919:3:91"},"nodeType":"ForStatement","src":"25893:73:91"},{"expression":{"id":54504,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25982:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54485,"id":54505,"nodeType":"Return","src":"25975:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25811:11:91","parameters":{"id":54482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54481,"mutability":"mutable","name":"weights","nameLocation":"25840:7:91","nodeType":"VariableDeclaration","scope":54507,"src":"25823:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54479,"name":"uint256","nodeType":"ElementaryTypeName","src":"25823:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54480,"nodeType":"ArrayTypeName","src":"25823:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25822:26:91"},"returnParameters":{"id":54485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54484,"mutability":"mutable","name":"sum","nameLocation":"25878:3:91","nodeType":"VariableDeclaration","scope":54507,"src":"25870:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54483,"name":"uint256","nodeType":"ElementaryTypeName","src":"25870:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25869:13:91"},"scope":55675,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54682,"nodeType":"FunctionDefinition","src":"25998:933:91","nodes":[],"body":{"id":54681,"nodeType":"Block","src":"26101:830:91","nodes":[],"statements":[{"expression":{"id":54524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26111: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":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26141: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":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26124: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":54519,"nodeType":"UserDefinedTypeName","pathNode":{"id":54518,"name":"FvmAddress","nameLocations":["26128:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26128:10:91"},"referencedDeclaration":49951,"src":"26128:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54520,"nodeType":"ArrayTypeName","src":"26128:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26124:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26111:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54525,"nodeType":"ExpressionStatement","src":"26111:32:91"},{"expression":{"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54526,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26153:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54528,"indexExpression":{"hexValue":"30","id":54527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26164: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":"26153:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26199: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":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26191:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26194:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26191:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26191:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54529,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26169:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26186:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26169: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":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26169:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26153:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54537,"nodeType":"ExpressionStatement","src":"26153:51:91"},{"expression":{"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54538,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26214:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54540,"indexExpression":{"hexValue":"31","id":54539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26225: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":"26214:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26260: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":54543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26252:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26255:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26252:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26252:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54541,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26230:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26247:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26230: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":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26230:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26214:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54549,"nodeType":"ExpressionStatement","src":"26214:51:91"},{"expression":{"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54550,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26275:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54552,"indexExpression":{"hexValue":"32","id":54551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26286: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":"26275:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26321: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":54555,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26313:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26316:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26313:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26313:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54553,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26291:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26308:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26291: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":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26291:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26275:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54561,"nodeType":"ExpressionStatement","src":"26275:51:91"},{"expression":{"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54562,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26337:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26363: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":54565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26349: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":54563,"name":"address","nodeType":"ElementaryTypeName","src":"26353:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54564,"nodeType":"ArrayTypeName","src":"26353:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26349:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26337:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54569,"nodeType":"ExpressionStatement","src":"26337:28:91"},{"expression":{"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54570,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26375:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54572,"indexExpression":{"hexValue":"30","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26385: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":"26375:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26398: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":54573,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26390:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26393:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26390:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26390:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26375:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54578,"nodeType":"ExpressionStatement","src":"26375:27:91"},{"expression":{"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54579,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54581,"indexExpression":{"hexValue":"31","id":54580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422: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":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435: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":54582,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54583,"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":54585,"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":54587,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54590,"indexExpression":{"hexValue":"32","id":54589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459: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":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472: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":54591,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54592,"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":54594,"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":54596,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"assignments":[54601],"declarations":[{"constant":false,"id":54601,"mutability":"mutable","name":"weights","nameLocation":"26504:7:91","nodeType":"VariableDeclaration","scope":54681,"src":"26487:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26487:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54600,"nodeType":"ArrayTypeName","src":"26487:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54607,"initialValue":{"arguments":[{"hexValue":"33","id":54605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26528: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":54604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26514: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":54602,"name":"uint256","nodeType":"ElementaryTypeName","src":"26518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54603,"nodeType":"ArrayTypeName","src":"26518:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26514:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26487:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26557: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":54611,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26549:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26552:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26549:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26549:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26563: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":54608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26541:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26544:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26541:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26541:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54617,"nodeType":"ExpressionStatement","src":"26541:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26591: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":54621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26583:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26586:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26583:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26583:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26597: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":54618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26575:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26575:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26575:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54627,"nodeType":"ExpressionStatement","src":"26575:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26625: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":54631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26617:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26620:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26617:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26617:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26631: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":54628,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26609:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26612:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26609:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26609:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54637,"nodeType":"ExpressionStatement","src":"26609:24:91"},{"expression":{"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54638,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26644:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54640,"indexExpression":{"hexValue":"30","id":54639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26652: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":"26644:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26657:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26644:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54643,"nodeType":"ExpressionStatement","src":"26644:16:91"},{"expression":{"id":54648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54644,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26670:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54646,"indexExpression":{"hexValue":"31","id":54645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26678: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":"26670:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26683:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26670:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54649,"nodeType":"ExpressionStatement","src":"26670:16:91"},{"expression":{"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54650,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26696:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54652,"indexExpression":{"hexValue":"32","id":54651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26704: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":"26696:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26709:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54655,"nodeType":"ExpressionStatement","src":"26696:16:91"},{"assignments":[54658],"declarations":[{"constant":false,"id":54658,"mutability":"mutable","name":"finality","nameLocation":"26745:8:91","nodeType":"VariableDeclaration","scope":54681,"src":"26723:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54657,"nodeType":"UserDefinedTypeName","pathNode":{"id":54656,"name":"ParentFinality","nameLocations":["26723:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26723:14:91"},"referencedDeclaration":49871,"src":"26723:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54667,"initialValue":{"arguments":[{"expression":{"id":54660,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26780:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26786:6:91","memberName":"number","nodeType":"MemberAccess","src":"26780:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26813: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":54663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26805:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26805:7:91","typeDescriptions":{}}},"id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26805:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54659,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26756:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26772:6:91","26794:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26756:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26723:94:91"},{"expression":{"arguments":[{"expression":{"id":54671,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26837:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26848:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26837:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54668,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26828:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26828:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26828:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54674,"nodeType":"ExpressionStatement","src":"26828:33:91"},{"expression":{"arguments":[{"id":54678,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54658,"src":"26915: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":54675,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"26871:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26894:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26871: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":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26871:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54680,"nodeType":"ExpressionStatement","src":"26871:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26007:15:91","parameters":{"id":54508,"nodeType":"ParameterList","parameters":[],"src":"26022:2:91"},"returnParameters":{"id":54516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54512,"mutability":"mutable","name":"validators","nameLocation":"26061:10:91","nodeType":"VariableDeclaration","scope":54682,"src":"26041: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":54510,"nodeType":"UserDefinedTypeName","pathNode":{"id":54509,"name":"FvmAddress","nameLocations":["26041:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26041:10:91"},"referencedDeclaration":49951,"src":"26041:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54511,"nodeType":"ArrayTypeName","src":"26041:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54515,"mutability":"mutable","name":"addresses","nameLocation":"26090:9:91","nodeType":"VariableDeclaration","scope":54682,"src":"26073:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54513,"name":"address","nodeType":"ElementaryTypeName","src":"26073:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"nodeType":"ArrayTypeName","src":"26073:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26040:60:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54775,"nodeType":"FunctionDefinition","src":"26937:1297:91","nodes":[],"body":{"id":54774,"nodeType":"Block","src":"27021:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54692,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"27046:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54693,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27073:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54691,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55582,"src":"27031:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27031:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54695,"nodeType":"ExpressionStatement","src":"27031:46:91"},{"assignments":[54698],"declarations":[{"constant":false,"id":54698,"mutability":"mutable","name":"crossMsg","nameLocation":"27104:8:91","nodeType":"VariableDeclaration","scope":54774,"src":"27088:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54697,"nodeType":"UserDefinedTypeName","pathNode":{"id":54696,"name":"CrossMsg","nameLocations":["27088:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27088:8:91"},"referencedDeclaration":49927,"src":"27088:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54738,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54706,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27267:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54702,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27226:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27235:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27226:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27252:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27226: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":54707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54710,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27330:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54708,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27308:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27325:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27308: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":54711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308: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":54701,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27183:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27216:8:91","27296:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27183:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54718,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27462:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54714,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27421:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27430:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27421:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27447:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27421: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":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54722,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27522:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54720,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27500:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27517:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27500: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":54723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27500: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":54713,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27378:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27411:8:91","27488:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27378:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54725,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27570:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27594:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27570:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54729,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27647:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27694: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":54731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27684:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54730,"name":"bytes","nodeType":"ElementaryTypeName","src":"27688:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27684:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54734,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27719: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":54700,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27147:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27177:4:91","27374:2:91","27563:5:91","27613:5:91","27639:6:91","27676:6:91","27714:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27147:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27778: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":54699,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27138:7:91","27769:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27115:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27088:706:91"},{"assignments":[54743],"declarations":[{"constant":false,"id":54743,"mutability":"mutable","name":"msgs","nameLocation":"27822:4:91","nodeType":"VariableDeclaration","scope":54774,"src":"27804: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":54741,"nodeType":"UserDefinedTypeName","pathNode":{"id":54740,"name":"CrossMsg","nameLocations":["27804:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27804:8:91"},"referencedDeclaration":49927,"src":"27804:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54742,"nodeType":"ArrayTypeName","src":"27804:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54750,"initialValue":{"arguments":[{"hexValue":"31","id":54748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844: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":54747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27829: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":54745,"nodeType":"UserDefinedTypeName","pathNode":{"id":54744,"name":"CrossMsg","nameLocations":["27833:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27833:8:91"},"referencedDeclaration":49927,"src":"27833:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54746,"nodeType":"ArrayTypeName","src":"27833:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27829: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":"27804:42:91"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"27856:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54753,"indexExpression":{"hexValue":"30","id":54752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27861: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":"27856:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"27866:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27856:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54756,"nodeType":"ExpressionStatement","src":"27856:18:91"},{"expression":{"arguments":[{"expression":{"id":54760,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28113:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28124:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28113:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54757,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28104:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28107:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28104:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28104:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54763,"nodeType":"ExpressionStatement","src":"28104:33:91"},{"expression":{"arguments":[{"id":54767,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"28187: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":54764,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"28147:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28168:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28147: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":54768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28147:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54769,"nodeType":"ExpressionStatement","src":"28147:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54770,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"28210:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28219:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28210: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":54772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28210:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54690,"id":54773,"nodeType":"Return","src":"28203:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26946:20:91","parameters":{"id":54687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54684,"mutability":"mutable","name":"caller","nameLocation":"26975:6:91","nodeType":"VariableDeclaration","scope":54775,"src":"26967:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54683,"name":"address","nodeType":"ElementaryTypeName","src":"26967:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54686,"mutability":"mutable","name":"src","nameLocation":"26991:3:91","nodeType":"VariableDeclaration","scope":54775,"src":"26983:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54685,"name":"address","nodeType":"ElementaryTypeName","src":"26983:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26966:29:91"},"returnParameters":{"id":54690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54775,"src":"27012:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27012:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27011:9:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54786,"nodeType":"FunctionDefinition","src":"28240:93:91","nodes":[],"body":{"id":54785,"nodeType":"Block","src":"28288:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54781,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54777,"src":"28311:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28322: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":54780,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"28298:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28298:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54784,"nodeType":"ExpressionStatement","src":"28298:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28249:12:91","parameters":{"id":54778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54777,"mutability":"mutable","name":"validator","nameLocation":"28270:9:91","nodeType":"VariableDeclaration","scope":54786,"src":"28262:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54776,"name":"address","nodeType":"ElementaryTypeName","src":"28262:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28261:19:91"},"returnParameters":{"id":54779,"nodeType":"ParameterList","parameters":[],"src":"28288:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54869,"nodeType":"FunctionDefinition","src":"28339:610:91","nodes":[],"body":{"id":54868,"nodeType":"Block","src":"28403:546:91","nodes":[],"statements":[{"assignments":[54797],"declarations":[{"constant":false,"id":54797,"mutability":"mutable","name":"validators","nameLocation":"28433:10:91","nodeType":"VariableDeclaration","scope":54868,"src":"28413: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":54795,"nodeType":"UserDefinedTypeName","pathNode":{"id":54794,"name":"FvmAddress","nameLocations":["28413:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28413:10:91"},"referencedDeclaration":49951,"src":"28413:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54796,"nodeType":"ArrayTypeName","src":"28413:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54804,"initialValue":{"arguments":[{"hexValue":"31","id":54802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28463: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":54801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28446: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":54799,"nodeType":"UserDefinedTypeName","pathNode":{"id":54798,"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":54800,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28446: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":"28413:52:91"},{"expression":{"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54805,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54797,"src":"28475:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54807,"indexExpression":{"hexValue":"30","id":54806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28486: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":"28475:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54810,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28513:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54808,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28491:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28508:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28491: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":54811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28491:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28475:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54813,"nodeType":"ExpressionStatement","src":"28475:48:91"},{"assignments":[54818],"declarations":[{"constant":false,"id":54818,"mutability":"mutable","name":"weights","nameLocation":"28550:7:91","nodeType":"VariableDeclaration","scope":54868,"src":"28533:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54816,"name":"uint256","nodeType":"ElementaryTypeName","src":"28533:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54817,"nodeType":"ArrayTypeName","src":"28533:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54824,"initialValue":{"arguments":[{"hexValue":"31","id":54822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28574: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":54821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28560: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":54819,"name":"uint256","nodeType":"ElementaryTypeName","src":"28564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54820,"nodeType":"ArrayTypeName","src":"28564:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28560:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28533:43:91"},{"expression":{"id":54829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54825,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"28586:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54827,"indexExpression":{"hexValue":"30","id":54826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28594: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":"28586:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54828,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"28599:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28586:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54830,"nodeType":"ExpressionStatement","src":"28586:19:91"},{"expression":{"arguments":[{"id":54834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28624:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28635: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":54831,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28616:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28619:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28616:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28616:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54837,"nodeType":"ExpressionStatement","src":"28616:21:91"},{"assignments":[54840],"declarations":[{"constant":false,"id":54840,"mutability":"mutable","name":"finality","nameLocation":"28669:8:91","nodeType":"VariableDeclaration","scope":54868,"src":"28647:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54839,"nodeType":"UserDefinedTypeName","pathNode":{"id":54838,"name":"ParentFinality","nameLocations":["28647:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28647:14:91"},"referencedDeclaration":49871,"src":"28647:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54849,"initialValue":{"arguments":[{"expression":{"id":54842,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28704:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28710:6:91","memberName":"number","nodeType":"MemberAccess","src":"28704:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28737: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":54845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28729:7:91","typeDescriptions":{}}},"id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54841,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28680:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:6:91","28718:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28680:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28647:94:91"},{"expression":{"arguments":[{"expression":{"id":54853,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28831:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28842:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28831:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54850,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28817:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28820:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28817:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28817:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54856,"nodeType":"ExpressionStatement","src":"28817:38:91"},{"expression":{"arguments":[{"id":54860,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54840,"src":"28909: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":54857,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"28865:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28888:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28865: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":54861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28865:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54862,"nodeType":"ExpressionStatement","src":"28865:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28928:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28931:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28928:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28928:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54867,"nodeType":"ExpressionStatement","src":"28928:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28348:12:91","parameters":{"id":54791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54788,"mutability":"mutable","name":"validator","nameLocation":"28369:9:91","nodeType":"VariableDeclaration","scope":54869,"src":"28361:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54787,"name":"address","nodeType":"ElementaryTypeName","src":"28361:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54790,"mutability":"mutable","name":"weight","nameLocation":"28388:6:91","nodeType":"VariableDeclaration","scope":54869,"src":"28380:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54789,"name":"uint256","nodeType":"ElementaryTypeName","src":"28380:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28360:35:91"},"returnParameters":{"id":54792,"nodeType":"ParameterList","parameters":[],"src":"28403:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54882,"nodeType":"FunctionDefinition","src":"28955:112:91","nodes":[],"body":{"id":54881,"nodeType":"Block","src":"28999:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29021:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"29053: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":54874,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29009:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29017:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29009:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29009:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54880,"nodeType":"ExpressionStatement","src":"29009:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"28964:6:91","parameters":{"id":54872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54871,"mutability":"mutable","name":"amount","nameLocation":"28979:6:91","nodeType":"VariableDeclaration","scope":54882,"src":"28971:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"28971:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28970:16:91"},"returnParameters":{"id":54873,"nodeType":"ParameterList","parameters":[],"src":"28999:0:91"},"scope":55675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54897,"nodeType":"FunctionDefinition","src":"29073:131:91","nodes":[],"body":{"id":54896,"nodeType":"Block","src":"29137:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54890,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54884,"src":"29152:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54891,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54886,"src":"29167:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54892,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29179:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29190:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29179: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":54889,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54897,55022],"referencedDeclaration":55022,"src":"29147:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29147:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54895,"nodeType":"ExpressionStatement","src":"29147:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29082:4:91","parameters":{"id":54887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54884,"mutability":"mutable","name":"funderAddress","nameLocation":"29095:13:91","nodeType":"VariableDeclaration","scope":54897,"src":"29087:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"29087:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54886,"mutability":"mutable","name":"fundAmount","nameLocation":"29118:10:91","nodeType":"VariableDeclaration","scope":54897,"src":"29110:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54885,"name":"uint256","nodeType":"ElementaryTypeName","src":"29110:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29086:43:91"},"returnParameters":{"id":54888,"nodeType":"ParameterList","parameters":[],"src":"29137:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55022,"nodeType":"FunctionDefinition","src":"29210:1180:91","nodes":[],"body":{"id":55021,"nodeType":"Block","src":"29291:1099:91","nodes":[],"statements":[{"assignments":[54909,null,54911,null,54913],"declarations":[{"constant":false,"id":54909,"mutability":"mutable","name":"subnetId","nameLocation":"29383:8:91","nodeType":"VariableDeclaration","scope":55021,"src":"29367:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54908,"nodeType":"UserDefinedTypeName","pathNode":{"id":54907,"name":"SubnetID","nameLocations":["29367:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29367:8:91"},"referencedDeclaration":50030,"src":"29367:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54911,"mutability":"mutable","name":"nonceBefore","nameLocation":"29403:11:91","nodeType":"VariableDeclaration","scope":55021,"src":"29395:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54910,"name":"uint256","nodeType":"ElementaryTypeName","src":"29395:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54913,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29426:16:91","nodeType":"VariableDeclaration","scope":55021,"src":"29418:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"29418:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54920,"initialValue":{"arguments":[{"arguments":[{"id":54917,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"29464:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29456:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54915,"name":"address","nodeType":"ElementaryTypeName","src":"29456:7:91","typeDescriptions":{}}},"id":54918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54914,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"29446: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":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29446: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":"29366:109:91"},{"assignments":[54922],"declarations":[{"constant":false,"id":54922,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29494:25:91","nodeType":"VariableDeclaration","scope":55021,"src":"29486:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54921,"name":"uint256","nodeType":"ElementaryTypeName","src":"29486:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54929,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54925,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29558: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":54923,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29522:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29531:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29522: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":54926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29522:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29570:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29522:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29486:85:91"},{"assignments":[54931],"declarations":[{"constant":false,"id":54931,"mutability":"mutable","name":"expectedNonce","nameLocation":"29589:13:91","nodeType":"VariableDeclaration","scope":55021,"src":"29581:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54930,"name":"uint256","nodeType":"ElementaryTypeName","src":"29581:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54935,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54932,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"29605:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29619:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29605:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29581:39:91"},{"assignments":[54937],"declarations":[{"constant":false,"id":54937,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29638:18:91","nodeType":"VariableDeclaration","scope":55021,"src":"29630:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54936,"name":"uint256","nodeType":"ElementaryTypeName","src":"29630:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54941,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54938,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54913,"src":"29659:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54939,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29678:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29659:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29630:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54943,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29707:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29716:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29707:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29707:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29707:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29735: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":54942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29699:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29699:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54950,"nodeType":"ExpressionStatement","src":"29699:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54951,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29769:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54952,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29777:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29788:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29777:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29769:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54968,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29912:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54969,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29920:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29931:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29920:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29912:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54984,"nodeType":"IfStatement","src":"29908:138:91","trueBody":{"id":54983,"nodeType":"Block","src":"29938:108:91","statements":[{"expression":{"arguments":[{"id":54975,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29976:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54978,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"30008:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54976,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29986:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30003:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29986: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":54979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29986:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54980,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"30024: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":54972,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29952:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29962:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29952: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":54981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29952:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54982,"nodeType":"ExpressionStatement","src":"29952:83:91"}]}},"id":54985,"nodeType":"IfStatement","src":"29765:281:91","trueBody":{"id":54967,"nodeType":"Block","src":"29796:106:91","statements":[{"expression":{"arguments":[{"id":54960,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29844:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54963,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"29876:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54961,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29854:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29871:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29854: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":54964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29854: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":54955,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29810:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29820:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29810: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":54959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54958,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29832:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29810: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":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54966,"nodeType":"ExpressionStatement","src":"29810:81:91"}]}},{"assignments":[null,null,54987,null,54989],"declarations":[null,null,{"constant":false,"id":54987,"mutability":"mutable","name":"nonce","nameLocation":"30069:5:91","nodeType":"VariableDeclaration","scope":55021,"src":"30061:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54986,"name":"uint256","nodeType":"ElementaryTypeName","src":"30061:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54989,"mutability":"mutable","name":"circSupply","nameLocation":"30086:10:91","nodeType":"VariableDeclaration","scope":55021,"src":"30078:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54988,"name":"uint256","nodeType":"ElementaryTypeName","src":"30078:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54996,"initialValue":{"arguments":[{"arguments":[{"id":54993,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30118:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30110:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"30110:7:91","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30110:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54990,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"30100: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":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30100: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":"30056:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55000,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"30184: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":54998,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"30148:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30157:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30148: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":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30148:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55002,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54922,"src":"30197:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30148:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30224: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":54997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30140:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30140:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55006,"nodeType":"ExpressionStatement","src":"30140:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55008,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54987,"src":"30264:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55009,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54931,"src":"30273:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30264:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30288: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":55007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30256:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30256:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55013,"nodeType":"ExpressionStatement","src":"30256:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55015,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54989,"src":"30325:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55016,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54937,"src":"30339:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30325:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30359: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":55014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30317:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30317:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55020,"nodeType":"ExpressionStatement","src":"30317:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29219:4:91","parameters":{"id":54905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54899,"mutability":"mutable","name":"funderAddress","nameLocation":"29232:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29224:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54898,"name":"address","nodeType":"ElementaryTypeName","src":"29224:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54901,"mutability":"mutable","name":"fundAmount","nameLocation":"29255:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"29247:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54900,"name":"uint256","nodeType":"ElementaryTypeName","src":"29247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54904,"mutability":"mutable","name":"mode","nameLocation":"29278:4:91","nodeType":"VariableDeclaration","scope":55022,"src":"29267:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54903,"nodeType":"UserDefinedTypeName","pathNode":{"id":54902,"name":"SupplyKind","nameLocations":["29267:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29267:10:91"},"referencedDeclaration":50182,"src":"29267:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29223:60:91"},"returnParameters":{"id":54906,"nodeType":"ParameterList","parameters":[],"src":"29291:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55053,"nodeType":"FunctionDefinition","src":"30396:243:91","nodes":[],"body":{"id":55052,"nodeType":"Block","src":"30464:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55032,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30483:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30474:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30477:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30474:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30474:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55034,"nodeType":"ExpressionStatement","src":"30474:26:91"},{"expression":{"arguments":[{"id":55038,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30518:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55039,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30536:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30536:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55035,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30510:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30513:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30510:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30510:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55043,"nodeType":"ExpressionStatement","src":"30510:56:91"},{"expression":{"arguments":[{"id":55049,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"30625: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":55044,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30576:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30586:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30576:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55047,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30598:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30576:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30576:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55051,"nodeType":"ExpressionStatement","src":"30576:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30405:4:91","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55024,"mutability":"mutable","name":"validatorAddress","nameLocation":"30418:16:91","nodeType":"VariableDeclaration","scope":55053,"src":"30410:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55023,"name":"address","nodeType":"ElementaryTypeName","src":"30410:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55026,"mutability":"mutable","name":"pubkey","nameLocation":"30449:6:91","nodeType":"VariableDeclaration","scope":55053,"src":"30436:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55025,"name":"bytes","nodeType":"ElementaryTypeName","src":"30436:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30409:47:91"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[],"src":"30464:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55100,"nodeType":"FunctionDefinition","src":"30645:298:91","nodes":[],"body":{"id":55099,"nodeType":"Block","src":"30713:230:91","nodes":[],"statements":[{"assignments":[55064],"declarations":[{"constant":false,"id":55064,"mutability":"mutable","name":"validators","nameLocation":"30740:10:91","nodeType":"VariableDeclaration","scope":55099,"src":"30723:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55062,"name":"address","nodeType":"ElementaryTypeName","src":"30723:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55063,"nodeType":"ArrayTypeName","src":"30723:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55070,"initialValue":{"arguments":[{"hexValue":"31","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30767: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":55067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30753: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":55065,"name":"address","nodeType":"ElementaryTypeName","src":"30757:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55066,"nodeType":"ArrayTypeName","src":"30757:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30753:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30723:46:91"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55071,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30779:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55073,"indexExpression":{"hexValue":"30","id":55072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30790: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":"30779:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55055,"src":"30795:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30779:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55076,"nodeType":"ExpressionStatement","src":"30779:25:91"},{"assignments":[55081],"declarations":[{"constant":false,"id":55081,"mutability":"mutable","name":"privKeys","nameLocation":"30832:8:91","nodeType":"VariableDeclaration","scope":55099,"src":"30815:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55079,"name":"uint256","nodeType":"ElementaryTypeName","src":"30815:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55080,"nodeType":"ArrayTypeName","src":"30815:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55087,"initialValue":{"arguments":[{"hexValue":"31","id":55085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30857: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":55084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30843: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":55082,"name":"uint256","nodeType":"ElementaryTypeName","src":"30847:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55083,"nodeType":"ArrayTypeName","src":"30847:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30843:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30815:44:91"},{"expression":{"id":55092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55088,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30869:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55090,"indexExpression":{"hexValue":"30","id":55089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30878: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":"30869:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55091,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55057,"src":"30883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30869:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55093,"nodeType":"ExpressionStatement","src":"30869:21:91"},{"expression":{"arguments":[{"id":55095,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30915:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55096,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30927: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":55094,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"30901: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":55097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30901:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55098,"nodeType":"ExpressionStatement","src":"30901:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30654:13:91","parameters":{"id":55058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55055,"mutability":"mutable","name":"validator","nameLocation":"30676:9:91","nodeType":"VariableDeclaration","scope":55100,"src":"30668:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55054,"name":"address","nodeType":"ElementaryTypeName","src":"30668:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55057,"mutability":"mutable","name":"privKey","nameLocation":"30695:7:91","nodeType":"VariableDeclaration","scope":55100,"src":"30687:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55056,"name":"uint256","nodeType":"ElementaryTypeName","src":"30687:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30667:36:91"},"returnParameters":{"id":55059,"nodeType":"ParameterList","parameters":[],"src":"30713:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55163,"nodeType":"FunctionDefinition","src":"30949:408:91","nodes":[],"body":{"id":55162,"nodeType":"Block","src":"31057:300:91","nodes":[],"statements":[{"assignments":[55115],"declarations":[{"constant":false,"id":55115,"mutability":"mutable","name":"validators","nameLocation":"31084:10:91","nodeType":"VariableDeclaration","scope":55162,"src":"31067:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55113,"name":"address","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55114,"nodeType":"ArrayTypeName","src":"31067:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55121,"initialValue":{"arguments":[{"hexValue":"32","id":55119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31111: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":55118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31097: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":55116,"name":"address","nodeType":"ElementaryTypeName","src":"31101:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55117,"nodeType":"ArrayTypeName","src":"31101:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31097:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31067:46:91"},{"expression":{"id":55126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55122,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31123:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55124,"indexExpression":{"hexValue":"30","id":55123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31134: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":"31123:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55125,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55102,"src":"31139:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31123:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55127,"nodeType":"ExpressionStatement","src":"31123:26:91"},{"expression":{"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55128,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31159:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55130,"indexExpression":{"hexValue":"31","id":55129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31170: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":"31159:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55131,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55106,"src":"31175:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31159:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55133,"nodeType":"ExpressionStatement","src":"31159:26:91"},{"assignments":[55138],"declarations":[{"constant":false,"id":55138,"mutability":"mutable","name":"privKeys","nameLocation":"31213:8:91","nodeType":"VariableDeclaration","scope":55162,"src":"31196:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55136,"name":"uint256","nodeType":"ElementaryTypeName","src":"31196:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55137,"nodeType":"ArrayTypeName","src":"31196:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55144,"initialValue":{"arguments":[{"hexValue":"32","id":55142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31238: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":55141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31224: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":55139,"name":"uint256","nodeType":"ElementaryTypeName","src":"31228:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55140,"nodeType":"ArrayTypeName","src":"31228:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31224:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31196:44:91"},{"expression":{"id":55149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55145,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31250:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55147,"indexExpression":{"hexValue":"30","id":55146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31259: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":"31250:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55148,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55104,"src":"31264:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31250:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55150,"nodeType":"ExpressionStatement","src":"31250:22:91"},{"expression":{"id":55155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55151,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31282:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55153,"indexExpression":{"hexValue":"31","id":55152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31291: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":"31282:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55154,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55108,"src":"31296:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31282:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55156,"nodeType":"ExpressionStatement","src":"31282:22:91"},{"expression":{"arguments":[{"id":55158,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31329:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55159,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31341: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":55157,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31315: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":55160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31315:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55161,"nodeType":"ExpressionStatement","src":"31315:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30958:13:91","parameters":{"id":55109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55102,"mutability":"mutable","name":"validator1","nameLocation":"30980:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"30972:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55101,"name":"address","nodeType":"ElementaryTypeName","src":"30972:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55104,"mutability":"mutable","name":"privKey1","nameLocation":"31000:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"30992:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55103,"name":"uint256","nodeType":"ElementaryTypeName","src":"30992:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55106,"mutability":"mutable","name":"validator2","nameLocation":"31018:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31010:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55105,"name":"address","nodeType":"ElementaryTypeName","src":"31010:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55108,"mutability":"mutable","name":"privKey2","nameLocation":"31038:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31030:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55107,"name":"uint256","nodeType":"ElementaryTypeName","src":"31030:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30971:76:91"},"returnParameters":{"id":55110,"nodeType":"ParameterList","parameters":[],"src":"31057:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55242,"nodeType":"FunctionDefinition","src":"31363:568:91","nodes":[],"body":{"id":55241,"nodeType":"Block","src":"31563:368:91","nodes":[],"statements":[{"assignments":[55182],"declarations":[{"constant":false,"id":55182,"mutability":"mutable","name":"validators","nameLocation":"31590:10:91","nodeType":"VariableDeclaration","scope":55241,"src":"31573:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55180,"name":"address","nodeType":"ElementaryTypeName","src":"31573:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55181,"nodeType":"ArrayTypeName","src":"31573:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55188,"initialValue":{"arguments":[{"hexValue":"33","id":55186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31617: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":55185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31603: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":55183,"name":"address","nodeType":"ElementaryTypeName","src":"31607:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55184,"nodeType":"ArrayTypeName","src":"31607:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31573:46:91"},{"expression":{"id":55193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55189,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31629:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55191,"indexExpression":{"hexValue":"30","id":55190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31640: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":"31629:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55192,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55165,"src":"31645:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31629:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55194,"nodeType":"ExpressionStatement","src":"31629:26:91"},{"expression":{"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55195,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31665:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55197,"indexExpression":{"hexValue":"31","id":55196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31676: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":"31665:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55198,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55169,"src":"31681:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31665:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55200,"nodeType":"ExpressionStatement","src":"31665:26:91"},{"expression":{"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55201,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31701:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55203,"indexExpression":{"hexValue":"32","id":55202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31712: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":"31701:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55204,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55173,"src":"31717:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31701:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55206,"nodeType":"ExpressionStatement","src":"31701:26:91"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"privKeys","nameLocation":"31755:8:91","nodeType":"VariableDeclaration","scope":55241,"src":"31738:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55209,"name":"uint256","nodeType":"ElementaryTypeName","src":"31738:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55210,"nodeType":"ArrayTypeName","src":"31738:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55217,"initialValue":{"arguments":[{"hexValue":"33","id":55215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31780: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":55214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31766: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":55212,"name":"uint256","nodeType":"ElementaryTypeName","src":"31770:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55213,"nodeType":"ArrayTypeName","src":"31770:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31766:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31738:44:91"},{"expression":{"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55218,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31792:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55220,"indexExpression":{"hexValue":"30","id":55219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31801: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":"31792:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55221,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55167,"src":"31806:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31792:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55223,"nodeType":"ExpressionStatement","src":"31792:22:91"},{"expression":{"id":55228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55224,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31824:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55226,"indexExpression":{"hexValue":"31","id":55225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31833: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":"31824:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55227,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55171,"src":"31838:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31824:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55229,"nodeType":"ExpressionStatement","src":"31824:22:91"},{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55230,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31856:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55232,"indexExpression":{"hexValue":"32","id":55231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31865: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":"31856:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55233,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55175,"src":"31870:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31856:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55235,"nodeType":"ExpressionStatement","src":"31856:22:91"},{"expression":{"arguments":[{"id":55237,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31903:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55238,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31915: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":55236,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31889: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":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31889:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55240,"nodeType":"ExpressionStatement","src":"31889:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31372:13:91","parameters":{"id":55176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55165,"mutability":"mutable","name":"validator1","nameLocation":"31403:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31395:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55164,"name":"address","nodeType":"ElementaryTypeName","src":"31395:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55167,"mutability":"mutable","name":"privKey1","nameLocation":"31431:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31423:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55166,"name":"uint256","nodeType":"ElementaryTypeName","src":"31423:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55169,"mutability":"mutable","name":"validator2","nameLocation":"31457:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31449:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55168,"name":"address","nodeType":"ElementaryTypeName","src":"31449:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55171,"mutability":"mutable","name":"privKey2","nameLocation":"31485:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31477:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55170,"name":"uint256","nodeType":"ElementaryTypeName","src":"31477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55173,"mutability":"mutable","name":"validator3","nameLocation":"31511:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31503:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55172,"name":"address","nodeType":"ElementaryTypeName","src":"31503:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55175,"mutability":"mutable","name":"privKey3","nameLocation":"31539:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31531:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55174,"name":"uint256","nodeType":"ElementaryTypeName","src":"31531:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31385:168:91"},"returnParameters":{"id":55177,"nodeType":"ParameterList","parameters":[],"src":"31563:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55393,"nodeType":"FunctionDefinition","src":"31937:1107:91","nodes":[],"body":{"id":55392,"nodeType":"Block","src":"32025:1019:91","nodes":[],"statements":[{"assignments":[55252],"declarations":[{"constant":false,"id":55252,"mutability":"mutable","name":"n","nameLocation":"32043:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32035:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55251,"name":"uint256","nodeType":"ElementaryTypeName","src":"32035:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55255,"initialValue":{"expression":{"id":55253,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32047:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32058:6:91","memberName":"length","nodeType":"MemberAccess","src":"32047:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32035:29:91"},{"assignments":[55260],"declarations":[{"constant":false,"id":55260,"mutability":"mutable","name":"signatures","nameLocation":"32090:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32075:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55258,"name":"bytes","nodeType":"ElementaryTypeName","src":"32075:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55259,"nodeType":"ArrayTypeName","src":"32075:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55266,"initialValue":{"arguments":[{"id":55264,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32115:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32103: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":55261,"name":"bytes","nodeType":"ElementaryTypeName","src":"32107:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55262,"nodeType":"ArrayTypeName","src":"32107:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32103:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32075:42:91"},{"assignments":[55268,null],"declarations":[{"constant":false,"id":55268,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32136:13:91","nodeType":"VariableDeclaration","scope":55392,"src":"32129:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55267,"name":"uint64","nodeType":"ElementaryTypeName","src":"32129:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32155:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32164:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32155:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32155:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32128:61:91"},{"assignments":[55274],"declarations":[{"constant":false,"id":55274,"mutability":"mutable","name":"h","nameLocation":"32208:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32200:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55273,"name":"uint256","nodeType":"ElementaryTypeName","src":"32200:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55282,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55275,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32212:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32221:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32212:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32212:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55278,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32254:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32263:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32254:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32254:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32212:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32200:84:91"},{"assignments":[55285],"declarations":[{"constant":false,"id":55285,"mutability":"mutable","name":"checkpoint","nameLocation":"32321:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32295:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55284,"nodeType":"UserDefinedTypeName","pathNode":{"id":55283,"name":"BottomUpCheckpoint","nameLocations":["32295:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32295:18:91"},"referencedDeclaration":49885,"src":"32295:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55307,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55293,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32421:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32413:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55291,"name":"address","nodeType":"ElementaryTypeName","src":"32413:7:91","typeDescriptions":{}}},"id":55294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32413:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55287,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32377:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32386:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32377:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32398:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32377: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":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55296,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32459:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55300,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32506:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32495:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32499:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32495:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32495:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55297,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32485:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32485:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55303,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"32548:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32548: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":55286,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32334:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32367:8:91","32446:11:91","32474:9:91","32523:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32334:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32295:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55313,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32603:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32595:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55311,"name":"address","nodeType":"ElementaryTypeName","src":"32595:7:91","typeDescriptions":{}}},"id":55314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32595:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32615: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":55308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32587:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32590:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32587:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32587:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55317,"nodeType":"ExpressionStatement","src":"32587:38:91"},{"assignments":[55319],"declarations":[{"constant":false,"id":55319,"mutability":"mutable","name":"hash","nameLocation":"32644:4:91","nodeType":"VariableDeclaration","scope":55392,"src":"32636:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32636:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55326,"initialValue":{"arguments":[{"arguments":[{"id":55323,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32672: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":55321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32661:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32665:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32661:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32661:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55320,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32651:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32651:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32636:48:91"},{"body":{"id":55362,"nodeType":"Block","src":"32727:140:91","statements":[{"assignments":[55338,55340,55342],"declarations":[{"constant":false,"id":55338,"mutability":"mutable","name":"v","nameLocation":"32748:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32742:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55337,"name":"uint8","nodeType":"ElementaryTypeName","src":"32742:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55340,"mutability":"mutable","name":"r","nameLocation":"32759:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32751:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32751:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55342,"mutability":"mutable","name":"s","nameLocation":"32770:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32762:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32762:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55350,"initialValue":{"arguments":[{"baseExpression":{"id":55345,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55248,"src":"32783:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55347,"indexExpression":{"id":55346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32792:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32783:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55348,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55319,"src":"32796:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55343,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32775:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32778:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32775: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":55349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32775:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32741:60:91"},{"expression":{"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55351,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"32815:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55353,"indexExpression":{"id":55352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32826:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32815:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55356,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"32848:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55342,"src":"32851:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"32854: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":55354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32831:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32835:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32831:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32831:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32815:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55361,"nodeType":"ExpressionStatement","src":"32815:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32715:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55332,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32719:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32715:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55363,"initializationExpression":{"assignments":[55328],"declarations":[{"constant":false,"id":55328,"mutability":"mutable","name":"i","nameLocation":"32708:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32700:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55327,"name":"uint256","nodeType":"ElementaryTypeName","src":"32700:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55330,"initialValue":{"hexValue":"30","id":55329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32712:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32700:13:91"},"loopExpression":{"expression":{"id":55335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32722:3:91","subExpression":{"id":55334,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55336,"nodeType":"ExpressionStatement","src":"32722:3:91"},"nodeType":"ForStatement","src":"32695:172:91"},{"body":{"id":55390,"nodeType":"Block","src":"32909:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55377,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32932:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55379,"indexExpression":{"id":55378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32943:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32932:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55374,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32923:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32926:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32923:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32923:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55381,"nodeType":"ExpressionStatement","src":"32923:23:91"},{"expression":{"arguments":[{"id":55385,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32992:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55386,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"33004:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55387,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"33016: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":55382,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"32960:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32975:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32960: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":55388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55389,"nodeType":"ExpressionStatement","src":"32960:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32897:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55369,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32901:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32897:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55391,"initializationExpression":{"assignments":[55365],"declarations":[{"constant":false,"id":55365,"mutability":"mutable","name":"i","nameLocation":"32890:1:91","nodeType":"VariableDeclaration","scope":55391,"src":"32882:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55364,"name":"uint256","nodeType":"ElementaryTypeName","src":"32882:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55367,"initialValue":{"hexValue":"30","id":55366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32882:13:91"},"loopExpression":{"expression":{"id":55372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32904:3:91","subExpression":{"id":55371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32904:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55373,"nodeType":"ExpressionStatement","src":"32904:3:91"},"nodeType":"ForStatement","src":"32877:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31946:13:91","parameters":{"id":55249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55245,"mutability":"mutable","name":"validators","nameLocation":"31977:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"31960:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55243,"name":"address","nodeType":"ElementaryTypeName","src":"31960:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55244,"nodeType":"ArrayTypeName","src":"31960:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55248,"mutability":"mutable","name":"privKeys","nameLocation":"32006:8:91","nodeType":"VariableDeclaration","scope":55393,"src":"31989:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55246,"name":"uint256","nodeType":"ElementaryTypeName","src":"31989:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55247,"nodeType":"ArrayTypeName","src":"31989:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31959:56:91"},"returnParameters":{"id":55250,"nodeType":"ParameterList","parameters":[],"src":"32025:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55428,"nodeType":"FunctionDefinition","src":"33050:305:91","nodes":[],"body":{"id":55427,"nodeType":"Block","src":"33097:258:91","nodes":[],"statements":[{"assignments":[55399],"declarations":[{"constant":false,"id":55399,"mutability":"mutable","name":"expectedNonce","nameLocation":"33115:13:91","nodeType":"VariableDeclaration","scope":55427,"src":"33107:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55398,"name":"uint256","nodeType":"ElementaryTypeName","src":"33107:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55405,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55400,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33131:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33140:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33131:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33131:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33158:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33131:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33107:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55413,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33231:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33235:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33231:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55411,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33209:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33226:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33209: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":55415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33209: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":55406,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33169:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33179:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33169:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55409,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55395,"src":"33194:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33169:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33169:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55417,"nodeType":"ExpressionStatement","src":"33169:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55419,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33261:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33270:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33261:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33261:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55422,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55399,"src":"33289:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33261:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33304: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":55418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33253:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33253:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55426,"nodeType":"ExpressionStatement","src":"33253:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33059:7:91","parameters":{"id":55396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55395,"mutability":"mutable","name":"releaseAmount","nameLocation":"33075:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33067:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55394,"name":"uint256","nodeType":"ElementaryTypeName","src":"33067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33066:23:91"},"returnParameters":{"id":55397,"nodeType":"ParameterList","parameters":[],"src":"33097:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55483,"nodeType":"FunctionDefinition","src":"33361:536:91","nodes":[],"body":{"id":55482,"nodeType":"Block","src":"33430:467:91","nodes":[],"statements":[{"assignments":[55436],"declarations":[{"constant":false,"id":55436,"mutability":"mutable","name":"balanceBefore","nameLocation":"33448:13:91","nodeType":"VariableDeclaration","scope":55482,"src":"33440:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55435,"name":"uint256","nodeType":"ElementaryTypeName","src":"33440:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55439,"initialValue":{"expression":{"id":55437,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33464:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33478:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33464:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33440:45:91"},{"assignments":[null,55441,null,null,null],"declarations":[null,{"constant":false,"id":55441,"mutability":"mutable","name":"stakedBefore","nameLocation":"33507:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33499:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55440,"name":"uint256","nodeType":"ElementaryTypeName","src":"33499:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55445,"initialValue":{"arguments":[{"id":55443,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33539:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55442,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33529: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":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33529: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":"33496:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55446,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33564:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33574:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33564:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55449,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33590:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33564:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33564:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"33564:40:91"},{"assignments":[55454],"declarations":[{"constant":false,"id":55454,"mutability":"mutable","name":"balanceAfter","nameLocation":"33623:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33615:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55453,"name":"uint256","nodeType":"ElementaryTypeName","src":"33615:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55457,"initialValue":{"expression":{"id":55455,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33638:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33652:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33638:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33615:44:91"},{"assignments":[null,55459,null,null,null],"declarations":[null,{"constant":false,"id":55459,"mutability":"mutable","name":"stakedAfter","nameLocation":"33680:11:91","nodeType":"VariableDeclaration","scope":55482,"src":"33672:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55458,"name":"uint256","nodeType":"ElementaryTypeName","src":"33672:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55463,"initialValue":{"arguments":[{"id":55461,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33711:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55460,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33701: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":55462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33701: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":"33669:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55465,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55454,"src":"33744:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55436,"src":"33760:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55467,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33776:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33760:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33744:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33789: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":55464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33736:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55472,"nodeType":"ExpressionStatement","src":"33736:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55474,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55459,"src":"33828:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"33843:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55476,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33858:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33843:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33828:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33871: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":55473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33820:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33820:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55481,"nodeType":"ExpressionStatement","src":"33820:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33370:8:91","parameters":{"id":55433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55430,"mutability":"mutable","name":"stakeAmount","nameLocation":"33387:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33379:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55429,"name":"uint256","nodeType":"ElementaryTypeName","src":"33379:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55432,"mutability":"mutable","name":"subnetAddress","nameLocation":"33408:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33400:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55431,"name":"address","nodeType":"ElementaryTypeName","src":"33400:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33378:44:91"},"returnParameters":{"id":55434,"nodeType":"ParameterList","parameters":[],"src":"33430:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55568,"nodeType":"FunctionDefinition","src":"33903:813:91","nodes":[],"body":{"id":55567,"nodeType":"Block","src":"33998:718:91","nodes":[],"statements":[{"assignments":[55495],"declarations":[{"constant":false,"id":55495,"mutability":"mutable","name":"manager","nameLocation":"34028:7:91","nodeType":"VariableDeclaration","scope":55567,"src":"34008:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55494,"nodeType":"UserDefinedTypeName","pathNode":{"id":55493,"name":"GatewayManagerFacet","nameLocations":["34008:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34008:19:91"},"referencedDeclaration":38870,"src":"34008:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55502,"initialValue":{"arguments":[{"arguments":[{"id":55499,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34066:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34058:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55497,"name":"address","nodeType":"ElementaryTypeName","src":"34058:7:91","typeDescriptions":{}}},"id":55500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34058:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55496,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34038:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34038:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34008:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34117: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":55503,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55495,"src":"34081:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34089:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34081:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55506,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34105:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34081:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55510,"nodeType":"ExpressionStatement","src":"34081:38:91"},{"assignments":[55513,55515,55517,null,55519],"declarations":[{"constant":false,"id":55513,"mutability":"mutable","name":"id","nameLocation":"34147:2:91","nodeType":"VariableDeclaration","scope":55567,"src":"34131:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55512,"nodeType":"UserDefinedTypeName","pathNode":{"id":55511,"name":"SubnetID","nameLocations":["34131:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34131:8:91"},"referencedDeclaration":50030,"src":"34131:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55515,"mutability":"mutable","name":"stake","nameLocation":"34159:5:91","nodeType":"VariableDeclaration","scope":55567,"src":"34151:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55514,"name":"uint256","nodeType":"ElementaryTypeName","src":"34151:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55517,"mutability":"mutable","name":"topDownNonce","nameLocation":"34174:12:91","nodeType":"VariableDeclaration","scope":55567,"src":"34166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55516,"name":"uint256","nodeType":"ElementaryTypeName","src":"34166:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55519,"mutability":"mutable","name":"circSupply","nameLocation":"34198:10:91","nodeType":"VariableDeclaration","scope":55567,"src":"34190:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55518,"name":"uint256","nodeType":"ElementaryTypeName","src":"34190:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55524,"initialValue":{"arguments":[{"id":55521,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34237:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55522,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34264: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":55520,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"34212: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":55523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34212: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":"34130:146:91"},{"assignments":[55527],"declarations":[{"constant":false,"id":55527,"mutability":"mutable","name":"parentNetwork","nameLocation":"34303:13:91","nodeType":"VariableDeclaration","scope":55567,"src":"34287:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55526,"nodeType":"UserDefinedTypeName","pathNode":{"id":55525,"name":"SubnetID","nameLocations":["34287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34287:8:91"},"referencedDeclaration":50030,"src":"34287:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55531,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55528,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"34319:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34328:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34319:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34319:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34287:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55533,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"34376:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34379:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34376: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":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34376:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55538,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34420:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55536,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"34391:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34405:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34391: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":55539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34435:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34391: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":55541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34376:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34457: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":55532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34355:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34355:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55545,"nodeType":"ExpressionStatement","src":"34355:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55547,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"34554:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55548,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34563:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34554:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34575: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":55546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34546:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34546:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55552,"nodeType":"ExpressionStatement","src":"34546:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55554,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55517,"src":"34612:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34628:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34612:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34631: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":55553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34604:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34604:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"34604:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55561,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55519,"src":"34668:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34682:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34668:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34685: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":55560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34660:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55566,"nodeType":"ExpressionStatement","src":"34660:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33912:16:91","parameters":{"id":55491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55485,"mutability":"mutable","name":"collateral","nameLocation":"33937:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"33929:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55484,"name":"uint256","nodeType":"ElementaryTypeName","src":"33929:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55487,"mutability":"mutable","name":"subnetAddress","nameLocation":"33957:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"33949:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55486,"name":"address","nodeType":"ElementaryTypeName","src":"33949:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55490,"mutability":"mutable","name":"gw","nameLocation":"33987:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"33972:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55489,"nodeType":"UserDefinedTypeName","pathNode":{"id":55488,"name":"GatewayDiamond","nameLocations":["33972:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"33972:14:91"},"referencedDeclaration":36170,"src":"33972:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33928:62:91"},"returnParameters":{"id":55492,"nodeType":"ParameterList","parameters":[],"src":"33998:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55582,"nodeType":"FunctionDefinition","src":"34722:150:91","nodes":[],"body":{"id":55581,"nodeType":"Block","src":"34796:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55576,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"34823:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55577,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"34835:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55578,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"34850: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":55575,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55568,"src":"34806:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34806:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55580,"nodeType":"ExpressionStatement","src":"34806:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34731:14:91","parameters":{"id":55573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55570,"mutability":"mutable","name":"collateral","nameLocation":"34754:10:91","nodeType":"VariableDeclaration","scope":55582,"src":"34746:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55569,"name":"uint256","nodeType":"ElementaryTypeName","src":"34746:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55572,"mutability":"mutable","name":"subnetAddress","nameLocation":"34774:13:91","nodeType":"VariableDeclaration","scope":55582,"src":"34766:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55571,"name":"address","nodeType":"ElementaryTypeName","src":"34766:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34745:43:91"},"returnParameters":{"id":55574,"nodeType":"ParameterList","parameters":[],"src":"34796:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55652,"nodeType":"FunctionDefinition","src":"34878:541:91","nodes":[],"body":{"id":55651,"nodeType":"Block","src":"35032:387:91","nodes":[],"statements":[{"expression":{"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55601,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"35042:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55605,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35082:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35074:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55603,"name":"address","nodeType":"ElementaryTypeName","src":"35074:7:91","typeDescriptions":{}}},"id":55606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35074:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55602,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35054:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35054:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35042:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55609,"nodeType":"ExpressionStatement","src":"35042:44:91"},{"expression":{"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55610,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35096:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55614,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35134:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35126:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55612,"name":"address","nodeType":"ElementaryTypeName","src":"35126:7:91","typeDescriptions":{}}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35126:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55611,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35107:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35107:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35096:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55618,"nodeType":"ExpressionStatement","src":"35096:42:91"},{"assignments":[55621],"declarations":[{"constant":false,"id":55621,"mutability":"mutable","name":"subnetId","nameLocation":"35165:8:91","nodeType":"VariableDeclaration","scope":55651,"src":"35149:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55620,"nodeType":"UserDefinedTypeName","pathNode":{"id":55619,"name":"SubnetID","nameLocations":["35149:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35149:8:91"},"referencedDeclaration":50030,"src":"35149:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55628,"initialValue":{"arguments":[{"id":55626,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55584,"src":"35217:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55622,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35176:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35185:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35176:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35202:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35176: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":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35149:82:91"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"subnet","nameLocation":"35256:6:91","nodeType":"VariableDeclaration","scope":55651,"src":"35242:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55630,"nodeType":"UserDefinedTypeName","pathNode":{"id":55629,"name":"Subnet","nameLocations":["35242:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35242:6:91"},"referencedDeclaration":50044,"src":"35242:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55638,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55634,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"35282:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35291:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35282: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":55636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35282:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55632,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35265:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35274:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35265: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":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35265:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35242:58:91"},{"expression":{"components":[{"expression":{"id":55639,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35319:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35326:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35319:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55641,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35330:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35337:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35330:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55643,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35344:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35351:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35344:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55645,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35365:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35372:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35365:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55647,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35394:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35401:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35394:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35318: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":55600,"id":55650,"nodeType":"Return","src":"35311:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34887:11:91","parameters":{"id":55588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55584,"mutability":"mutable","name":"subnetAddress","nameLocation":"34916:13:91","nodeType":"VariableDeclaration","scope":55652,"src":"34908:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55583,"name":"address","nodeType":"ElementaryTypeName","src":"34908:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55587,"mutability":"mutable","name":"gw","nameLocation":"34954:2:91","nodeType":"VariableDeclaration","scope":55652,"src":"34939:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55586,"nodeType":"UserDefinedTypeName","pathNode":{"id":55585,"name":"GatewayDiamond","nameLocations":["34939:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34939:14:91"},"referencedDeclaration":36170,"src":"34939:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34898:64:91"},"returnParameters":{"id":55600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34979:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55590,"nodeType":"UserDefinedTypeName","pathNode":{"id":55589,"name":"SubnetID","nameLocations":["34979:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34979:8:91"},"referencedDeclaration":50030,"src":"34979:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34996:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55592,"name":"uint256","nodeType":"ElementaryTypeName","src":"34996:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35005:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55594,"name":"uint256","nodeType":"ElementaryTypeName","src":"35005:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35014:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55596,"name":"uint256","nodeType":"ElementaryTypeName","src":"35014:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35023:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55598,"name":"uint256","nodeType":"ElementaryTypeName","src":"35023:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34978:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55674,"nodeType":"FunctionDefinition","src":"35425:177:91","nodes":[],"body":{"id":55673,"nodeType":"Block","src":"35536:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55669,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55654,"src":"35565:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55670,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"35580: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":55668,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"35553: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":55671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35553: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":55667,"id":55672,"nodeType":"Return","src":"35546:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35434:9:91","parameters":{"id":55655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55654,"mutability":"mutable","name":"subnetAddress","nameLocation":"35452:13:91","nodeType":"VariableDeclaration","scope":55674,"src":"35444:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55653,"name":"address","nodeType":"ElementaryTypeName","src":"35444:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35443:23:91"},"returnParameters":{"id":55667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35483:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55657,"nodeType":"UserDefinedTypeName","pathNode":{"id":55656,"name":"SubnetID","nameLocations":["35483:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35483:8:91"},"referencedDeclaration":50030,"src":"35483:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35500:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55659,"name":"uint256","nodeType":"ElementaryTypeName","src":"35500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35509:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55661,"name":"uint256","nodeType":"ElementaryTypeName","src":"35509:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35518:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55663,"name":"uint256","nodeType":"ElementaryTypeName","src":"35518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35527:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55665,"name":"uint256","nodeType":"ElementaryTypeName","src":"35527:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35482:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53053,"name":"Test","nameLocations":["8753:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8753:4:91"},"id":53054,"nodeType":"InheritanceSpecifier","src":"8753:4:91"},{"baseName":{"id":53055,"name":"TestParams","nameLocations":["8759:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"8759:10:91"},"id":53056,"nodeType":"InheritanceSpecifier","src":"8759:10:91"},{"baseName":{"id":53057,"name":"TestRegistry","nameLocations":["8771:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52759,"src":"8771:12:91"},"id":53058,"nodeType":"InheritanceSpecifier","src":"8771:12:91"},{"baseName":{"id":53059,"name":"TestSubnetActor","nameLocations":["8785:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53052,"src":"8785:15:91"},"id":53060,"nodeType":"InheritanceSpecifier","src":"8785:15:91"},{"baseName":{"id":53061,"name":"TestGatewayActor","nameLocations":["8802:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52888,"src":"8802:16:91"},"id":53062,"nodeType":"InheritanceSpecifier","src":"8802:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8730:19:91","scope":55676,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestBase.sol/TestParams.json b/contracts/.out/IntegrationTestBase.sol/TestParams.json new file mode 100644 index 000000000..04e7e6afa --- /dev/null +++ b/contracts/.out/IntegrationTestBase.sol/TestParams.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea26469706673582212202b48878aa4b7a5ee08f662983d483e5c09e61e3df8d706559020c9503285776264736f6c63430008130033","sourceMap":"2675:1194:91:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212202b48878aa4b7a5ee08f662983d483e5c09e61e3df8d706559020c9503285776264736f6c63430008130033","sourceMap":"2675: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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"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":55676,"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":[55675],"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":[57060],"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":[58922],"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":[52888],"TestParams":[52695],"TestRegistry":[52759],"TestSubnetActor":[53052],"TestUtils":[57848],"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:35559: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":55676,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52531,"nodeType":"ImportDirective","src":"139:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52529,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"147:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52530,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"160:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52533,"nodeType":"ImportDirective","src":"212:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52532,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"220:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52535,"nodeType":"ImportDirective","src":"274:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"282:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52540,"nodeType":"ImportDirective","src":"331:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52536,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"339:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52537,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"349:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"369:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"382:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52542,"nodeType":"ImportDirective","src":"434:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52541,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"442:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"492:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52543,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"500:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"510:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"522:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"538:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"554:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"562:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"576:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"588:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"633:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52552,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"641:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"695:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"703:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"761:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52556,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"769:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"823:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52558,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"831:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"891:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52560,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"899:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"948:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"956:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1006:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52564,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1014:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1072:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52566,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1080:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1146:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52568,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1154:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1226:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52570,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1234:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1303:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52572,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1311:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1384:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52574,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1392:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1465:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52576,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1473:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1550:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52578,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1558:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1634:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":58923,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"1642:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1695:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52582,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1703:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"1778:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1786:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"1857:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52586,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1865:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"1952:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52588,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1960:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2033:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52590,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2041:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2115:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52592,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2123:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2187:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52594,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2195:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52597,"nodeType":"ImportDirective","src":"2270:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52596,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2278:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52599,"nodeType":"ImportDirective","src":"2350:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52598,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2358:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52601,"nodeType":"ImportDirective","src":"2422:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52600,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2430:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52603,"nodeType":"ImportDirective","src":"2490:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52602,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2498:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52605,"nodeType":"ImportDirective","src":"2560:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57849,"symbolAliases":[{"foreign":{"id":52604,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"2568:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52607,"nodeType":"ImportDirective","src":"2611:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57061,"symbolAliases":[{"foreign":{"id":52606,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"2619:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52695,"nodeType":"ContractDefinition","src":"2675:1194:91","nodes":[{"id":52614,"nodeType":"VariableDeclaration","src":"2701:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2717:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52608,"name":"uint64","nodeType":"ElementaryTypeName","src":"2701:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52610,"name":"uint64","nodeType":"ElementaryTypeName","src":"2734:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52609,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2742:3:91","memberName":"max","nodeType":"MemberAccess","src":"2729:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2751:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2768:20:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:91","typeDescriptions":{}}},"id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2848:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2864:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2848:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2889:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2896:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2913:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52624,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2956:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2971:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2956:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3001:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3009:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3025:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52630,"name":"uint64","nodeType":"ElementaryTypeName","src":"3009:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3053:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3066:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3082:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52633,"name":"uint64","nodeType":"ElementaryTypeName","src":"3066:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52638,"nodeType":"VariableDeclaration","src":"3118:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3134:16:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52636,"name":"string","nodeType":"ElementaryTypeName","src":"3118:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3153:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3168:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3183:7:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52639,"name":"bytes","nodeType":"ElementaryTypeName","src":"3168:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52640,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3193:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52644,"nodeType":"VariableDeclaration","src":"3210:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3227:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3264:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3281:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52645,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52653,"nodeType":"VariableDeclaration","src":"3319:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3336:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"3319:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368: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":52650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3360:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:91","typeDescriptions":{}}},"id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52659,"nodeType":"VariableDeclaration","src":"3377:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3394:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52654,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428: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":52656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3420:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:91","typeDescriptions":{}}},"id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3420:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3437:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3453:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52660,"name":"uint64","nodeType":"ElementaryTypeName","src":"3437:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52662,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3469:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3465:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52667,"nodeType":"VariableDeclaration","src":"3500:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3517:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3556:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3572:31:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52668,"name":"uint16","nodeType":"ElementaryTypeName","src":"3556:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3606:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52673,"nodeType":"VariableDeclaration","src":"3615:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3629:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52671,"name":"int8","nodeType":"ElementaryTypeName","src":"3615:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3651:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3659:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3675:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52674,"name":"uint64","nodeType":"ElementaryTypeName","src":"3659:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3702:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3719:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3745: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":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:91","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52688,"nodeType":"VariableDeclaration","src":"3753:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3770:24:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52683,"name":"address","nodeType":"ElementaryTypeName","src":"3753:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805: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":52685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3797:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:91","typeDescriptions":{}}},"id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3797:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52694,"nodeType":"VariableDeclaration","src":"3816:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3833:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52689,"name":"address","nodeType":"ElementaryTypeName","src":"3816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863: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":52691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:91","typeDescriptions":{}}},"id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52695],"name":"TestParams","nameLocation":"2684:10:91","scope":55676,"usedErrors":[]},{"id":52759,"nodeType":"ContractDefinition","src":"3871:824:91","nodes":[{"id":52702,"nodeType":"VariableDeclaration","src":"3919:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3928:28:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52700,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3919:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52701,"nodeType":"ArrayTypeName","src":"3919:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3962:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3971:34:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52703,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52704,"nodeType":"ArrayTypeName","src":"3962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"4011:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4020:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52706,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4011:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52707,"nodeType":"ArrayTypeName","src":"4011:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4049:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4058:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52709,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4049:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52710,"nodeType":"ArrayTypeName","src":"4049:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4088:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4110:15:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetRegistryDiamond","nameLocations":["4088:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4088:21:91"},"referencedDeclaration":36853,"src":"4088:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52717,"nodeType":"VariableDeclaration","src":"4131:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4149:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["4131:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4131:17:91"},"referencedDeclaration":37355,"src":"4131:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52720,"nodeType":"VariableDeclaration","src":"4169:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4185:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52719,"nodeType":"UserDefinedTypeName","pathNode":{"id":52718,"name":"DiamondCutFacet","nameLocations":["4169:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4169:15:91"},"referencedDeclaration":36918,"src":"4169:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52723,"nodeType":"VariableDeclaration","src":"4205:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4225:19:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52722,"nodeType":"UserDefinedTypeName","pathNode":{"id":52721,"name":"RegisterSubnetFacet","nameLocations":["4205:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4205:19:91"},"referencedDeclaration":52286,"src":"4205:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52726,"nodeType":"VariableDeclaration","src":"4250:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4268:25:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52725,"nodeType":"UserDefinedTypeName","pathNode":{"id":52724,"name":"SubnetGetterFacet","nameLocations":["4250:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4250:17:91"},"referencedDeclaration":52524,"src":"4250:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52758,"nodeType":"FunctionDefinition","src":"4300:393:91","nodes":[],"body":{"id":52757,"nodeType":"Block","src":"4314:379:91","nodes":[],"statements":[{"expression":{"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52729,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"4324:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4388: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":52730,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4355:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4355: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":52733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52735,"nodeType":"ExpressionStatement","src":"4324:86:91"},{"expression":{"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52736,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"4420:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4490: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":52737,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4457:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4457: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":52740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4457:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4420:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52742,"nodeType":"ExpressionStatement","src":"4420:90:91"},{"expression":{"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52743,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"4520:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4579: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":52744,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4546:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4562:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4546: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":52747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4520:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52749,"nodeType":"ExpressionStatement","src":"4520:77:91"},{"expression":{"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52750,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"4607:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4666: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":52751,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4633:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4649:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4633: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":52754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4607:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52756,"nodeType":"ExpressionStatement","src":"4607:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52727,"nodeType":"ParameterList","parameters":[],"src":"4311:2:91"},"returnParameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4314:0:91"},"scope":52759,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52696,"name":"Test","nameLocations":["3896:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3896:4:91"},"id":52697,"nodeType":"InheritanceSpecifier","src":"3896:4:91"},{"baseName":{"id":52698,"name":"TestParams","nameLocations":["3902:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"3902:10:91"},"id":52699,"nodeType":"InheritanceSpecifier","src":"3902:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3880:12:91","scope":55676,"usedErrors":[]},{"id":52888,"nodeType":"ContractDefinition","src":"4697:1625:91","nodes":[{"id":52766,"nodeType":"VariableDeclaration","src":"4749:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4758:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4749:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4749:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4793:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4802:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4793:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4793:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4837:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4846:31:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4837:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4837:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4883:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4892:30:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4883:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4883:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4929:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4938:18:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4929:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4929:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4962:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4971:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52780,"nodeType":"ArrayTypeName","src":"4962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4994:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5003:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4994:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52783,"nodeType":"ArrayTypeName","src":"4994:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"5030:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5039:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52785,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5030:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52786,"nodeType":"ArrayTypeName","src":"5030:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5062:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5071:16:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52788,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5062:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52789,"nodeType":"ArrayTypeName","src":"5062:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5094:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5109:14:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"GatewayDiamond","nameLocations":["5094:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5094:14:91"},"referencedDeclaration":36170,"src":"5094:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5129:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5149:9:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"GatewayManagerFacet","nameLocations":["5129:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5129:19:91"},"referencedDeclaration":38870,"src":"5129:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5164:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5183:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"GatewayGetterFacet","nameLocations":["5164:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5164:18:91"},"referencedDeclaration":38317,"src":"5164:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5197:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5216:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"CheckpointingFacet","nameLocations":["5197:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5197:18:91"},"referencedDeclaration":39870,"src":"5197:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5261:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"XnetMessagingFacet","nameLocations":["5242:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5242:18:91"},"referencedDeclaration":40144,"src":"5242:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5308:22:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"TopDownFinalityFacet","nameLocations":["5287:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5287:20:91"},"referencedDeclaration":40071,"src":"5287:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52811,"nodeType":"VariableDeclaration","src":"5336:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5356:21:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52810,"nodeType":"UserDefinedTypeName","pathNode":{"id":52809,"name":"BottomUpRouterFacet","nameLocations":["5336:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5336:19:91"},"referencedDeclaration":39601,"src":"5336:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52814,"nodeType":"VariableDeclaration","src":"5383:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5405:11:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52813,"nodeType":"UserDefinedTypeName","pathNode":{"id":52812,"name":"GatewayMessengerFacet","nameLocations":["5383:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5383:21:91"},"referencedDeclaration":39235,"src":"5383:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52817,"nodeType":"VariableDeclaration","src":"5422:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5438:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52816,"nodeType":"UserDefinedTypeName","pathNode":{"id":52815,"name":"DiamondCutFacet","nameLocations":["5422:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5422:15:91"},"referencedDeclaration":36918,"src":"5422:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52820,"nodeType":"VariableDeclaration","src":"5452:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5470:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52819,"nodeType":"UserDefinedTypeName","pathNode":{"id":52818,"name":"DiamondLoupeFacet","nameLocations":["5452:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5452:17:91"},"referencedDeclaration":37355,"src":"5452:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52887,"nodeType":"FunctionDefinition","src":"5485:835:91","nodes":[],"body":{"id":52886,"nodeType":"Block","src":"5499:821:91","nodes":[],"statements":[{"expression":{"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52823,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5509:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5574: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":52824,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5541:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5557:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5541: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":52827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5509:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52829,"nodeType":"ExpressionStatement","src":"5509:86:91"},{"expression":{"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5605:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5670: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":52831,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5637:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5653:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5637: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":52834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52836,"nodeType":"ExpressionStatement","src":"5605:86:91"},{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52837,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5701:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768: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":52838,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5735:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5751:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5735: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":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5701:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52843,"nodeType":"ExpressionStatement","src":"5701:90:91"},{"expression":{"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52844,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5801:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5867: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":52845,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5834:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5834: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":52848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5834:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5801:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52850,"nodeType":"ExpressionStatement","src":"5801:88:91"},{"expression":{"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52851,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"5900:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5953: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":52852,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5920:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5936:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5920: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":52855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5920:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5900:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52857,"nodeType":"ExpressionStatement","src":"5900:74:91"},{"expression":{"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52858,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"5984:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6038: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":52859,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6005:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6005: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":52862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5984:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52864,"nodeType":"ExpressionStatement","src":"5984:76:91"},{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52865,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"6070:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6126: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":52866,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6093:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6109:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6093: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":52869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6070:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52871,"nodeType":"ExpressionStatement","src":"6070:80:91"},{"expression":{"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52872,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"6160:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6213: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":52873,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6180:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6196:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6180: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":52876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6160:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52878,"nodeType":"ExpressionStatement","src":"6160:71:91"},{"expression":{"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52879,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"6241:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6293: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":52880,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6260:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6276:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6260: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":52883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6241:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52885,"nodeType":"ExpressionStatement","src":"6241:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52821,"nodeType":"ParameterList","parameters":[],"src":"5496:2:91"},"returnParameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5499:0:91"},"scope":52888,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52760,"name":"Test","nameLocations":["4726:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4726:4:91"},"id":52761,"nodeType":"InheritanceSpecifier","src":"4726:4:91"},{"baseName":{"id":52762,"name":"TestParams","nameLocations":["4732:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"4732:10:91"},"id":52763,"nodeType":"InheritanceSpecifier","src":"4732:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52888,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4706:16:91","scope":55676,"usedErrors":[]},{"id":53052,"nodeType":"ContractDefinition","src":"6324:2395:91","nodes":[{"id":52895,"nodeType":"VariableDeclaration","src":"6375:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6384:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52893,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6375:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52894,"nodeType":"ArrayTypeName","src":"6375:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52898,"nodeType":"VariableDeclaration","src":"6407:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6416:18:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52896,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6407:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52897,"nodeType":"ArrayTypeName","src":"6407:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52901,"nodeType":"VariableDeclaration","src":"6440:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"6449:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52899,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6440:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52900,"nodeType":"ArrayTypeName","src":"6440:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52904,"nodeType":"VariableDeclaration","src":"6472:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"6481:19:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6472:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52903,"nodeType":"ArrayTypeName","src":"6472:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52907,"nodeType":"VariableDeclaration","src":"6506:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"6515:23:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52905,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6506:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52906,"nodeType":"ArrayTypeName","src":"6506:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52910,"nodeType":"VariableDeclaration","src":"6544:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6553:24:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52908,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6544:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52909,"nodeType":"ArrayTypeName","src":"6544:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52913,"nodeType":"VariableDeclaration","src":"6583:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6592:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52911,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6583:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52912,"nodeType":"ArrayTypeName","src":"6583:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52916,"nodeType":"VariableDeclaration","src":"6615:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6624:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52914,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6615:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52915,"nodeType":"ArrayTypeName","src":"6615:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52919,"nodeType":"VariableDeclaration","src":"6648:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6667:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52918,"nodeType":"UserDefinedTypeName","pathNode":{"id":52917,"name":"SubnetActorDiamond","nameLocations":["6648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6648:18:91"},"referencedDeclaration":36615,"src":"6648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6682:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6706:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52921,"nodeType":"UserDefinedTypeName","pathNode":{"id":52920,"name":"SubnetActorManagerFacet","nameLocations":["6682:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"6682:23:91"},"referencedDeclaration":51946,"src":"6682:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6721:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"6737:6:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":52924,"nodeType":"UserDefinedTypeName","pathNode":{"id":52923,"name":"SubnetActorMock","nameLocations":["6721:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"6721:15:91"},"referencedDeclaration":58922,"src":"6721:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6749:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6772:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52927,"nodeType":"UserDefinedTypeName","pathNode":{"id":52926,"name":"SubnetActorGetterFacet","nameLocations":["6749:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"6749:22:91"},"referencedDeclaration":51235,"src":"6749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6786:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"6809:10:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52930,"nodeType":"UserDefinedTypeName","pathNode":{"id":52929,"name":"SubnetActorRewardFacet","nameLocations":["6786:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"6786:22:91"},"referencedDeclaration":52158,"src":"6786:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6825:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"6847:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorPauseFacet","nameLocations":["6825:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"6825:21:91"},"referencedDeclaration":51991,"src":"6825:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6861:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"6891:14:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorCheckpointingFacet","nameLocations":["6861:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"6861:29:91"},"referencedDeclaration":50577,"src":"6861:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"6912:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6928:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"DiamondCutFacet","nameLocations":["6912:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"6912:15:91"},"referencedDeclaration":36918,"src":"6912:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"6942:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6960:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"DiamondLoupeFacet","nameLocations":["6942:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"6942:17:91"},"referencedDeclaration":37355,"src":"6942:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53003,"nodeType":"FunctionDefinition","src":"6975:729:91","nodes":[],"body":{"id":53002,"nodeType":"Block","src":"6989:715:91","nodes":[],"statements":[{"expression":{"id":52951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52946,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"6999:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7052: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":52947,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7019:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7035:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7019: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":52950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6999:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52952,"nodeType":"ExpressionStatement","src":"6999:78:91"},{"expression":{"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52953,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"7087:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7141: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":52954,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7108:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7124:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7108: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":52957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7108:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7087:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52959,"nodeType":"ExpressionStatement","src":"7087:80:91"},{"expression":{"id":52965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52960,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"7177:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":52963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7230: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":52961,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7197:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7213:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7197: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":52964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7177:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52966,"nodeType":"ExpressionStatement","src":"7177:77:91"},{"expression":{"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52967,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"7264:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":52970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7319: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":52968,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7286:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7302:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7286: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":52971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7264:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52973,"nodeType":"ExpressionStatement","src":"7264:80:91"},{"expression":{"id":52979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52974,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"7354:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":52977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7413: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":52975,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7380:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7380: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":52978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7380:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7354:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52980,"nodeType":"ExpressionStatement","src":"7354:91:91"},{"expression":{"id":52986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52981,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"7455:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":52984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7515: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":52982,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7482:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7498:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7482: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":52985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7455:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52987,"nodeType":"ExpressionStatement","src":"7455:78:91"},{"expression":{"id":52993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52988,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"7543:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7596: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":52989,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7563:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7579:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7563: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":52992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7563:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7543:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52994,"nodeType":"ExpressionStatement","src":"7543:71:91"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52995,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"7624:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7677: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":52996,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7644:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7660:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7644: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":52999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7644:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7624:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53001,"nodeType":"ExpressionStatement","src":"7624:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52944,"nodeType":"ParameterList","parameters":[],"src":"6986:2:91"},"returnParameters":{"id":52945,"nodeType":"ParameterList","parameters":[],"src":"6989:0:91"},"scope":53052,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53051,"nodeType":"FunctionDefinition","src":"7710:1007:91","nodes":[],"body":{"id":53050,"nodeType":"Block","src":"7857:860:91","nodes":[],"statements":[{"assignments":[53013],"declarations":[{"constant":false,"id":53013,"mutability":"mutable","name":"native","nameLocation":"7887:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7867:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53012,"nodeType":"UserDefinedTypeName","pathNode":{"id":53011,"name":"SupplySource","nameLocations":["7867:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"7867:12:91"},"referencedDeclaration":50179,"src":"7867:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53017,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53014,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"7896:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7915:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"7896:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7896:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:56:91"},{"assignments":[53022],"declarations":[{"constant":false,"id":53022,"mutability":"mutable","name":"params","nameLocation":"7977:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7933:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53021,"nodeType":"UserDefinedTypeName","pathNode":{"id":53020,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7933:18:91","7952:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7933:36:91"},"referencedDeclaration":36253,"src":"7933:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53047,"initialValue":{"arguments":[{"arguments":[{"id":53026,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"8063:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8101: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":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8087: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":53027,"name":"address","nodeType":"ElementaryTypeName","src":"8091:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53028,"nodeType":"ArrayTypeName","src":"8091:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087: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":53025,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8047:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8057:4:91","8080:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8047:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53033,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53005,"src":"8135:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53034,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8162:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8176:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8162:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53036,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8225:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53037,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8279:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53038,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"8336:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"8395:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53040,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"8459:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53041,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52673,"src":"8516:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53042,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"8565:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53043,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"8616:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8631:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"8616:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53045,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53013,"src":"8669: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":53023,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7986:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8005:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7986:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8037:8:91","8119:14:91","8151:9:91","8200:23:91","8264:13:91","8315:19:91","8375:18:91","8436:21:91","8504:10:91","8549:14:91","8600:14:91","8655:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7986:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7933:753:91"},{"expression":{"id":53048,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53022,"src":"8704:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53010,"id":53049,"nodeType":"Return","src":"8697:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7719:35:91","parameters":{"id":53006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53005,"mutability":"mutable","name":"gw","nameLocation":"7772:2:91","nodeType":"VariableDeclaration","scope":53051,"src":"7764:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53004,"name":"address","nodeType":"ElementaryTypeName","src":"7764:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7754:26:91"},"returnParameters":{"id":53010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53051,"src":"7812:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53008,"nodeType":"UserDefinedTypeName","pathNode":{"id":53007,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7812:18:91","7831:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7812:36:91"},"referencedDeclaration":36253,"src":"7812:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7811:45:91"},"scope":53052,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52889,"name":"Test","nameLocations":["6352:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6352:4:91"},"id":52890,"nodeType":"InheritanceSpecifier","src":"6352:4:91"},{"baseName":{"id":52891,"name":"TestParams","nameLocations":["6358:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"6358:10:91"},"id":52892,"nodeType":"InheritanceSpecifier","src":"6358:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53052,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6333:15:91","scope":55676,"usedErrors":[]},{"id":55675,"nodeType":"ContractDefinition","src":"8721:26883:91","nodes":[{"id":53066,"nodeType":"UsingForDirective","src":"8825:34:91","nodes":[],"global":false,"libraryName":{"id":53063,"name":"SubnetIDHelper","nameLocations":["8831:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"8831:14:91"},"typeName":{"id":53065,"nodeType":"UserDefinedTypeName","pathNode":{"id":53064,"name":"SubnetID","nameLocations":["8850:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"8850:8:91"},"referencedDeclaration":50030,"src":"8850:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53070,"nodeType":"UsingForDirective","src":"8864:42:91","nodes":[],"global":false,"libraryName":{"id":53067,"name":"SupplySourceHelper","nameLocations":["8870:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"8870:18:91"},"typeName":{"id":53069,"nodeType":"UserDefinedTypeName","pathNode":{"id":53068,"name":"SupplySource","nameLocations":["8893:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8893:12:91"},"referencedDeclaration":50179,"src":"8893:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53074,"nodeType":"UsingForDirective","src":"8911:34:91","nodes":[],"global":false,"libraryName":{"id":53071,"name":"CrossMsgHelper","nameLocations":["8917:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"8917:14:91"},"typeName":{"id":53073,"nodeType":"UserDefinedTypeName","pathNode":{"id":53072,"name":"CrossMsg","nameLocations":["8936:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"8936:8:91"},"referencedDeclaration":49927,"src":"8936:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53078,"nodeType":"UsingForDirective","src":"8950:40:91","nodes":[],"global":false,"libraryName":{"id":53075,"name":"StorableMsgHelper","nameLocations":["8956:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"8956:17:91"},"typeName":{"id":53077,"nodeType":"UserDefinedTypeName","pathNode":{"id":53076,"name":"StorableMsg","nameLocations":["8978:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"8978:11:91"},"referencedDeclaration":49944,"src":"8978:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53082,"nodeType":"UsingForDirective","src":"8995:38:91","nodes":[],"global":false,"libraryName":{"id":53079,"name":"FvmAddressHelper","nameLocations":["9001:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9001:16:91"},"typeName":{"id":53081,"nodeType":"UserDefinedTypeName","pathNode":{"id":53080,"name":"FvmAddress","nameLocations":["9022:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9022:10:91"},"referencedDeclaration":49951,"src":"9022:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53086,"nodeType":"EventDefinition","src":"9039:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9045:21:91","parameters":{"id":53085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53084,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9083:21:91","nodeType":"VariableDeclaration","scope":53086,"src":"9067:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9066:39:91"}},{"id":53090,"nodeType":"FunctionDefinition","src":"9112:16:91","nodes":[],"body":{"id":53089,"nodeType":"Block","src":"9126:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53087,"nodeType":"ParameterList","parameters":[],"src":"9123:2:91"},"returnParameters":{"id":53088,"nodeType":"ParameterList","parameters":[],"src":"9126:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53292,"nodeType":"FunctionDefinition","src":"9134:1732:91","nodes":[],"body":{"id":53291,"nodeType":"Block","src":"9166:1700:91","nodes":[],"statements":[{"assignments":[53097],"declarations":[{"constant":false,"id":53097,"mutability":"mutable","name":"path","nameLocation":"9193:4:91","nodeType":"VariableDeclaration","scope":53291,"src":"9176:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53095,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53096,"nodeType":"ArrayTypeName","src":"9176:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53103,"initialValue":{"arguments":[{"hexValue":"31","id":53101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9214: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":53100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9200: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":53098,"name":"address","nodeType":"ElementaryTypeName","src":"9204:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53099,"nodeType":"ArrayTypeName","src":"9204:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9176:40:91"},{"expression":{"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53104,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53097,"src":"9226:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53106,"indexExpression":{"hexValue":"30","id":53105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231: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":"9226:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53107,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"9236:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9226:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53109,"nodeType":"ExpressionStatement","src":"9226:25:91"},{"assignments":[53114],"declarations":[{"constant":false,"id":53114,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9344:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"9304:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53113,"nodeType":"UserDefinedTypeName","pathNode":{"id":53112,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9304:14:91","9319:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9304:32:91"},"referencedDeclaration":35883,"src":"9304:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53117,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53115,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53328,"src":"9366:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9366:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9304:84:91"},{"expression":{"id":53122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9398:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53120,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53114,"src":"9436: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":53119,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"9415: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":53121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9415:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9398:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53123,"nodeType":"ExpressionStatement","src":"9398:58:91"},{"expression":{"id":53131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53124,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9467:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53128,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9505:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9497:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53126,"name":"address","nodeType":"ElementaryTypeName","src":"9497:7:91","typeDescriptions":{}}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53125,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9478:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9467:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53132,"nodeType":"ExpressionStatement","src":"9467:54:91"},{"expression":{"id":53140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53133,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9531:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53137,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9571:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9563:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9563:7:91","typeDescriptions":{}}},"id":53138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9563:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53134,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9543:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9531:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53141,"nodeType":"ExpressionStatement","src":"9531:56:91"},{"expression":{"id":53149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53142,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9597:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9647:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9639:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53144,"name":"address","nodeType":"ElementaryTypeName","src":"9639:7:91","typeDescriptions":{}}},"id":53147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9639:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53143,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9620:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9597:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53150,"nodeType":"ExpressionStatement","src":"9597:66:91"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53151,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9673:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9723:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9715:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53153,"name":"address","nodeType":"ElementaryTypeName","src":"9715:7:91","typeDescriptions":{}}},"id":53156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53152,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9696:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9673:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53159,"nodeType":"ExpressionStatement","src":"9673:66:91"},{"expression":{"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53160,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53164,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9803:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9795:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53162,"name":"address","nodeType":"ElementaryTypeName","src":"9795:7:91","typeDescriptions":{}}},"id":53165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53161,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9774:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9749:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53168,"nodeType":"ExpressionStatement","src":"9749:70:91"},{"expression":{"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53169,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52811,"src":"9829:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53173,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9881:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9873:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53171,"name":"address","nodeType":"ElementaryTypeName","src":"9873:7:91","typeDescriptions":{}}},"id":53174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53170,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9853:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9853:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9829:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53177,"nodeType":"ExpressionStatement","src":"9829:68:91"},{"expression":{"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53178,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"9907:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53182,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9951:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9943:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53180,"name":"address","nodeType":"ElementaryTypeName","src":"9943:7:91","typeDescriptions":{}}},"id":53183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9943:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53179,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9921:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9921:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9907:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53186,"nodeType":"ExpressionStatement","src":"9907:60:91"},{"expression":{"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53187,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"9977:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53191,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10014:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10006:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53189,"name":"address","nodeType":"ElementaryTypeName","src":"10006:7:91","typeDescriptions":{}}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10006:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53188,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9988:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9988:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9977:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53195,"nodeType":"ExpressionStatement","src":"9977:53:91"},{"expression":{"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53196,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"10040:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53200,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10075:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53198,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:91","typeDescriptions":{}}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10067:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53197,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10051:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10051:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10040:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53204,"nodeType":"ExpressionStatement","src":"10040:51:91"},{"assignments":[53209],"declarations":[{"constant":false,"id":53209,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10200:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"10156:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53208,"nodeType":"UserDefinedTypeName","pathNode":{"id":53207,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10156:18:91","10175:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10156:36:91"},"referencedDeclaration":36253,"src":"10156:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53216,"initialValue":{"arguments":[{"arguments":[{"id":53213,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10271:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53211,"name":"address","nodeType":"ElementaryTypeName","src":"10271:7:91","typeDescriptions":{}}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10271:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53210,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"10222: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":53215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10222:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10156:148:91"},{"expression":{"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10315:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53219,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53209,"src":"10345: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":53218,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":53911,"src":"10327: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":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10315:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53222,"nodeType":"ExpressionStatement","src":"10315:50:91"},{"expression":{"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53223,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"10375:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53227,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10419:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10411:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53225,"name":"address","nodeType":"ElementaryTypeName","src":"10411:7:91","typeDescriptions":{}}},"id":53228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10411:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53224,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"10387:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10387:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"10375:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53231,"nodeType":"ExpressionStatement","src":"10375:55:91"},{"expression":{"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53232,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"10440:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53236,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10482:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53234,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:91","typeDescriptions":{}}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53233,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"10451:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10451:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"10440:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53240,"nodeType":"ExpressionStatement","src":"10440:53:91"},{"expression":{"id":53248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53241,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10503:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53245,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10544:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10536:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"10536:7:91","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10536:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"10514:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10514:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"10503:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53249,"nodeType":"ExpressionStatement","src":"10503:52:91"},{"expression":{"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"10565:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10609:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10601:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53252,"name":"address","nodeType":"ElementaryTypeName","src":"10601:7:91","typeDescriptions":{}}},"id":53255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10601:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53251,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"10578:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10578:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"10565:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53258,"nodeType":"ExpressionStatement","src":"10565:55:91"},{"expression":{"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53259,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10630:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53263,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10685:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53261,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:91","typeDescriptions":{}}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53260,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"10647:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"10630:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53267,"nodeType":"ExpressionStatement","src":"10630:66:91"},{"expression":{"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53268,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10706:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53272,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10743:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10735:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53270,"name":"address","nodeType":"ElementaryTypeName","src":"10735:7:91","typeDescriptions":{}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53269,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10717:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10717:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10706:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53276,"nodeType":"ExpressionStatement","src":"10706:48:91"},{"expression":{"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53277,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"10764:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53281,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10799:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53279,"name":"address","nodeType":"ElementaryTypeName","src":"10791:7:91","typeDescriptions":{}}},"id":53282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53278,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10775:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10764:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53285,"nodeType":"ExpressionStatement","src":"10764:46:91"},{"expression":{"arguments":[{"id":53287,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52694,"src":"10834:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855: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":53286,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"10821:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"10821:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9143:5:91","parameters":{"id":53091,"nodeType":"ParameterList","parameters":[],"src":"9148:2:91"},"returnParameters":{"id":53092,"nodeType":"ParameterList","parameters":[],"src":"9166:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53328,"nodeType":"FunctionDefinition","src":"10872:606:91","nodes":[],"body":{"id":53327,"nodeType":"Block","src":"10976:502:91","nodes":[],"statements":[{"assignments":[53302],"declarations":[{"constant":false,"id":53302,"mutability":"mutable","name":"params","nameLocation":"11026:6:91","nodeType":"VariableDeclaration","scope":53327,"src":"10986:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53301,"nodeType":"UserDefinedTypeName","pathNode":{"id":53300,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10986:14:91","11001:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10986:32:91"},"referencedDeclaration":35883,"src":"10986:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53324,"initialValue":{"arguments":[{"arguments":[{"id":53306,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"11111:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11149: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":53309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11135: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":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11139:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53308,"nodeType":"ArrayTypeName","src":"11139:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11135: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":53305,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"11095:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11105:4:91","11128:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"11095:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53313,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"11188:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53314,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"11235:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53315,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"11290:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":53320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11366: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":53319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11350: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":53317,"nodeType":"UserDefinedTypeName","pathNode":{"id":53316,"name":"Validator","nameLocations":["11354:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"11354:9:91"},"referencedDeclaration":50164,"src":"11354:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":53318,"nodeType":"ArrayTypeName","src":"11354:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11350:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":53322,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"11405: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":53303,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"11035:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11050:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"11035:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11082:11:91","11167:19:91","11227:6:91","11270:18:91","11331:17:91","11382:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"11035:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10986:461:91"},{"expression":{"id":53325,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53302,"src":"11465:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":53297,"id":53326,"nodeType":"Return","src":"11458:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"10881:20:91","parameters":{"id":53293,"nodeType":"ParameterList","parameters":[],"src":"10901:2:91"},"returnParameters":{"id":53297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53328,"src":"10935:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10935:14:91","10950:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10935:32:91"},"referencedDeclaration":35883,"src":"10935:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10934:41:91"},"scope":55675,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":53587,"nodeType":"FunctionDefinition","src":"11484:3185:91","nodes":[],"body":{"id":53586,"nodeType":"Block","src":"11594:3075:91","nodes":[],"statements":[{"assignments":[53339],"declarations":[{"constant":false,"id":53339,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11623:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11604:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"CheckpointingFacet","nameLocations":["11604:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11604:18:91"},"referencedDeclaration":39870,"src":"11604:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53344,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53341,"nodeType":"UserDefinedTypeName","pathNode":{"id":53340,"name":"CheckpointingFacet","nameLocations":["11648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11648:18:91"},"referencedDeclaration":39870,"src":"11648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11604:64:91"},{"assignments":[53347],"declarations":[{"constant":false,"id":53347,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11697:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11678:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53346,"nodeType":"UserDefinedTypeName","pathNode":{"id":53345,"name":"XnetMessagingFacet","nameLocations":["11678:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11678:18:91"},"referencedDeclaration":40144,"src":"11678:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11718:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53349,"nodeType":"UserDefinedTypeName","pathNode":{"id":53348,"name":"XnetMessagingFacet","nameLocations":["11722:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11722:18:91"},"referencedDeclaration":40144,"src":"11722:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11718:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11678:64:91"},{"assignments":[53355],"declarations":[{"constant":false,"id":53355,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11773:20:91","nodeType":"VariableDeclaration","scope":53586,"src":"11752:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53354,"nodeType":"UserDefinedTypeName","pathNode":{"id":53353,"name":"TopDownFinalityFacet","nameLocations":["11752:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11752:20:91"},"referencedDeclaration":40071,"src":"11752:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53360,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11796:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53357,"nodeType":"UserDefinedTypeName","pathNode":{"id":53356,"name":"TopDownFinalityFacet","nameLocations":["11800:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11800:20:91"},"referencedDeclaration":40071,"src":"11800:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11796:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11752:70:91"},{"assignments":[53363],"declarations":[{"constant":false,"id":53363,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11852:19:91","nodeType":"VariableDeclaration","scope":53586,"src":"11832:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53362,"nodeType":"UserDefinedTypeName","pathNode":{"id":53361,"name":"BottomUpRouterFacet","nameLocations":["11832:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11832:19:91"},"referencedDeclaration":39601,"src":"11832:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53368,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11874:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53365,"nodeType":"UserDefinedTypeName","pathNode":{"id":53364,"name":"BottomUpRouterFacet","nameLocations":["11878:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11878:19:91"},"referencedDeclaration":39601,"src":"11878:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11874:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11832:67:91"},{"assignments":[53371],"declarations":[{"constant":false,"id":53371,"mutability":"mutable","name":"manager","nameLocation":"11930:7:91","nodeType":"VariableDeclaration","scope":53586,"src":"11910:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53370,"nodeType":"UserDefinedTypeName","pathNode":{"id":53369,"name":"GatewayManagerFacet","nameLocations":["11910:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11910:19:91"},"referencedDeclaration":38870,"src":"11910:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11940:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53373,"nodeType":"UserDefinedTypeName","pathNode":{"id":53372,"name":"GatewayManagerFacet","nameLocations":["11944:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11944:19:91"},"referencedDeclaration":38870,"src":"11944:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11940:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11910:55:91"},{"assignments":[53379],"declarations":[{"constant":false,"id":53379,"mutability":"mutable","name":"getter","nameLocation":"11994:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"11975:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53378,"nodeType":"UserDefinedTypeName","pathNode":{"id":53377,"name":"GatewayGetterFacet","nameLocations":["11975:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11975:18:91"},"referencedDeclaration":38317,"src":"11975:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12003:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53381,"nodeType":"UserDefinedTypeName","pathNode":{"id":53380,"name":"GatewayGetterFacet","nameLocations":["12007:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12007:18:91"},"referencedDeclaration":38317,"src":"12007:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11975:52:91"},{"assignments":[53387],"declarations":[{"constant":false,"id":53387,"mutability":"mutable","name":"messenger","nameLocation":"12059:9:91","nodeType":"VariableDeclaration","scope":53586,"src":"12037:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53386,"nodeType":"UserDefinedTypeName","pathNode":{"id":53385,"name":"GatewayMessengerFacet","nameLocations":["12037:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12037:21:91"},"referencedDeclaration":39235,"src":"12037:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12071:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53389,"nodeType":"UserDefinedTypeName","pathNode":{"id":53388,"name":"GatewayMessengerFacet","nameLocations":["12075:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12075:21:91"},"referencedDeclaration":39235,"src":"12075:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12071:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12037:61:91"},{"assignments":[53395],"declarations":[{"constant":false,"id":53395,"mutability":"mutable","name":"cutter","nameLocation":"12124:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12108:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53394,"nodeType":"UserDefinedTypeName","pathNode":{"id":53393,"name":"DiamondCutFacet","nameLocations":["12108:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12108:15:91"},"referencedDeclaration":36918,"src":"12108:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53400,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12133:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53397,"nodeType":"UserDefinedTypeName","pathNode":{"id":53396,"name":"DiamondCutFacet","nameLocations":["12137:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12137:15:91"},"referencedDeclaration":36918,"src":"12137:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12133:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12108:46:91"},{"assignments":[53403],"declarations":[{"constant":false,"id":53403,"mutability":"mutable","name":"louper","nameLocation":"12182:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12164:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53402,"nodeType":"UserDefinedTypeName","pathNode":{"id":53401,"name":"DiamondLoupeFacet","nameLocations":["12164:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12164:17:91"},"referencedDeclaration":37355,"src":"12164:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53408,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12191:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53405,"nodeType":"UserDefinedTypeName","pathNode":{"id":53404,"name":"DiamondLoupeFacet","nameLocations":["12195:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12195:17:91"},"referencedDeclaration":37355,"src":"12195:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12191:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12164:50:91"},{"assignments":[53414],"declarations":[{"constant":false,"id":53414,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12252:12:91","nodeType":"VariableDeclaration","scope":53586,"src":"12225: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":53412,"nodeType":"UserDefinedTypeName","pathNode":{"id":53411,"name":"IDiamond.FacetCut","nameLocations":["12225:8:91","12234:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12225:17:91"},"referencedDeclaration":40159,"src":"12225:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53413,"nodeType":"ArrayTypeName","src":"12225:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53421,"initialValue":{"arguments":[{"hexValue":"39","id":53419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12291: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":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12267: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":53416,"nodeType":"UserDefinedTypeName","pathNode":{"id":53415,"name":"IDiamond.FacetCut","nameLocations":["12271:8:91","12280:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12271:17:91"},"referencedDeclaration":40159,"src":"12271:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53417,"nodeType":"ArrayTypeName","src":"12271:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267: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":"12225:68:91"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53422,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12304:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53424,"indexExpression":{"hexValue":"30","id":53423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317: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":"12304:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53429,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53339,"src":"12394:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12386:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53427,"name":"address","nodeType":"ElementaryTypeName","src":"12386:7:91","typeDescriptions":{}}},"id":53430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53431,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12439:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12448:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12439:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12463:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12439:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53434,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12503: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":53425,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12336:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12345:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12336:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12372:12:91","12431:6:91","12484:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12336:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12322:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12304:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53438,"nodeType":"ExpressionStatement","src":"12304:253:91"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53439,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12568:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53441,"indexExpression":{"hexValue":"36","id":53440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12581: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":"12568:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53446,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53347,"src":"12658:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12650:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53444,"name":"address","nodeType":"ElementaryTypeName","src":"12650:7:91","typeDescriptions":{}}},"id":53447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12650:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53448,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12703:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12712:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12703:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12727:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12703:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53451,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12767: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":53442,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12600:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12609:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12600:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12636:12:91","12695:6:91","12748:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12600:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12586:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12568:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53455,"nodeType":"ExpressionStatement","src":"12568:253:91"},{"expression":{"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12832:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53458,"indexExpression":{"hexValue":"37","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845: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":"12832:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53463,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53355,"src":"12922:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12914:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53461,"name":"address","nodeType":"ElementaryTypeName","src":"12914:7:91","typeDescriptions":{}}},"id":53464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12914:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12969:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12978:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12969:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12993:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12969:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53468,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13033: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":53459,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12864:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12873:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12864:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12900:12:91","12961:6:91","13014:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12864:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12850:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12832:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53472,"nodeType":"ExpressionStatement","src":"12832:257:91"},{"expression":{"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53473,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13100:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53475,"indexExpression":{"hexValue":"38","id":53474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113: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":"13100:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53480,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53363,"src":"13190:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13182:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53478,"name":"address","nodeType":"ElementaryTypeName","src":"13182:7:91","typeDescriptions":{}}},"id":53481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13182:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13236:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13245:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13236:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13260:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13236:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53485,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13300: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":53476,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13132:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13141:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13132:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13168:12:91","13228:6:91","13281:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13132:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13118:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13100:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53489,"nodeType":"ExpressionStatement","src":"13100:255:91"},{"expression":{"id":53505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53490,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13366:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53492,"indexExpression":{"hexValue":"31","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379: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":"13366:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53497,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53371,"src":"13456:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13448:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53495,"name":"address","nodeType":"ElementaryTypeName","src":"13448:7:91","typeDescriptions":{}}},"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13448:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13490:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13499:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13490:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13514:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13490:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53502,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13554: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":53493,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13398:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13407:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13398:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13434:12:91","13482:6:91","13535:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13398:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13384:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13366:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53506,"nodeType":"ExpressionStatement","src":"13366:231:91"},{"expression":{"id":53522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53507,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13608:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53509,"indexExpression":{"hexValue":"32","id":53508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621: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":"13608:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53514,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53379,"src":"13698:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13690:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53512,"name":"address","nodeType":"ElementaryTypeName","src":"13690:7:91","typeDescriptions":{}}},"id":53515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13731:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13740:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13731:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13755:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13731:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53519,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13795: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":53510,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13640:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13649:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13640:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13676:12:91","13723:6:91","13776:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13640:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13626:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13608:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53523,"nodeType":"ExpressionStatement","src":"13608:229:91"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53524,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13848:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53526,"indexExpression":{"hexValue":"33","id":53525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13861: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":"13848:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53531,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53387,"src":"13938:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13930:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53529,"name":"address","nodeType":"ElementaryTypeName","src":"13930:7:91","typeDescriptions":{}}},"id":53532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13930:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53533,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13974:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13983:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13974:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13998:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13974:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53536,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"14038: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":53527,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13880:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13889:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13880:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13916:12:91","13966:6:91","14019:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13880:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13866:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13848:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53540,"nodeType":"ExpressionStatement","src":"13848:235:91"},{"expression":{"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53541,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14094:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53543,"indexExpression":{"hexValue":"34","id":53542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107: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":"14094:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53548,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53403,"src":"14184:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14176:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53546,"name":"address","nodeType":"ElementaryTypeName","src":"14176:7:91","typeDescriptions":{}}},"id":53549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14176:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53550,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14217:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14226:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14217:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14241:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14217:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53553,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"14281: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":53544,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:91","14209:6:91","14262:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14094:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53557,"nodeType":"ExpressionStatement","src":"14094:228:91"},{"expression":{"id":53573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53558,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14333:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53560,"indexExpression":{"hexValue":"35","id":53559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346: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":"14333:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53565,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53395,"src":"14423:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14415:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53563,"name":"address","nodeType":"ElementaryTypeName","src":"14415:7:91","typeDescriptions":{}}},"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14415:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53567,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14456:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14456:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14480:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14456:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53570,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"14520: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":53561,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14365:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14365:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14401:12:91","14448:6:91","14501:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14365:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14351:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14333:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53574,"nodeType":"ExpressionStatement","src":"14333:229:91"},{"expression":{"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53575,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14573:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53579,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14609:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53580,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"14623: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":53578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14590: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":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"GatewayDiamond","nameLocations":["14594:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14594:14:91"},"referencedDeclaration":36170,"src":"14594:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14590:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14573:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53583,"nodeType":"ExpressionStatement","src":"14573:57:91"},{"expression":{"id":53584,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14648:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53336,"id":53585,"nodeType":"Return","src":"14641:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11493:20:91","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53331,"mutability":"mutable","name":"params","nameLocation":"11554:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"11514:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53330,"nodeType":"UserDefinedTypeName","pathNode":{"id":53329,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11514:14:91","11529:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11514:32:91"},"referencedDeclaration":35883,"src":"11514:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11513:48:91"},"returnParameters":{"id":53336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53587,"src":"11578:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"GatewayDiamond","nameLocations":["11578:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11578:14:91"},"referencedDeclaration":36170,"src":"11578:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11577:16:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53701,"nodeType":"FunctionDefinition","src":"14675:1613:91","nodes":[],"body":{"id":53700,"nodeType":"Block","src":"14951:1337:91","nodes":[],"statements":[{"assignments":[53611],"declarations":[{"constant":false,"id":53611,"mutability":"mutable","name":"diamondCut","nameLocation":"14988:10:91","nodeType":"VariableDeclaration","scope":53700,"src":"14961: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":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"IDiamond.FacetCut","nameLocations":["14961:8:91","14970:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14961:17:91"},"referencedDeclaration":40159,"src":"14961:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53610,"nodeType":"ArrayTypeName","src":"14961:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53618,"initialValue":{"arguments":[{"hexValue":"35","id":53616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15025: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":53615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15001: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":53613,"nodeType":"UserDefinedTypeName","pathNode":{"id":53612,"name":"IDiamond.FacetCut","nameLocations":["15005:8:91","15014:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15005:17:91"},"referencedDeclaration":40159,"src":"15005:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53614,"nodeType":"ArrayTypeName","src":"15005:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15001: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":"14961:66:91"},{"expression":{"id":53631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53619,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15038:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53621,"indexExpression":{"hexValue":"30","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15049: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":"15038:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53624,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53592,"src":"15118:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53625,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15150:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15159:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15150:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15174:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15150:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53628,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"15214: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":53622,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15068:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15077:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15068:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15104:12:91","15142:6:91","15195:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15068:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15054:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15038:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53632,"nodeType":"ExpressionStatement","src":"15038:218:91"},{"expression":{"id":53645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53633,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15267:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53635,"indexExpression":{"hexValue":"31","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15278: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":"15267:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53638,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15347:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53639,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15380:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15389:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15380:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15404:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15380:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53642,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"15444: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":53636,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15297:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15306:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15297:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15333:12:91","15372:6:91","15425:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15297:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15283:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15267:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53646,"nodeType":"ExpressionStatement","src":"15267:220:91"},{"expression":{"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53647,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15498:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53649,"indexExpression":{"hexValue":"32","id":53648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15509: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":"15498:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53652,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53596,"src":"15578:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53653,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15610:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15619:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15610:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15634:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15610:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53656,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"15674: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":53650,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15528:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15537:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15528:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15564:12:91","15602:6:91","15655:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15528:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15514:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15498:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53660,"nodeType":"ExpressionStatement","src":"15498:218:91"},{"expression":{"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53661,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15727:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53663,"indexExpression":{"hexValue":"33","id":53662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15738: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":"15727:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53666,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53598,"src":"15807:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53667,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15841:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15850:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15841:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15865:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15841:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53670,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"15905: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":53664,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15757:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15766:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15757:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15793:12:91","15833:6:91","15886:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15757:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15743:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15727:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53674,"nodeType":"ExpressionStatement","src":"15727:222:91"},{"expression":{"id":53687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15960:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53677,"indexExpression":{"hexValue":"34","id":53676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971: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":"15960:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53680,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53600,"src":"16040:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53681,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16078:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16078:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16102:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16078:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53684,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"16142: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":53678,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15990:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15990:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16026:12:91","16070:6:91","16123:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15990:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15976:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15960:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53688,"nodeType":"ExpressionStatement","src":"15960:230:91"},{"expression":{"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53689,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16201:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53693,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"16236:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53694,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"16248: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":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16213: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":53691,"nodeType":"UserDefinedTypeName","pathNode":{"id":53690,"name":"SubnetActorDiamond","nameLocations":["16217:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16217:18:91"},"referencedDeclaration":36615,"src":"16217:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16201:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53697,"nodeType":"ExpressionStatement","src":"16201:54:91"},{"expression":{"id":53698,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16272:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53605,"id":53699,"nodeType":"Return","src":"16265:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14684:35:91","parameters":{"id":53601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53590,"mutability":"mutable","name":"params","nameLocation":"14773:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14729:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14729:18:91","14748:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14729:36:91"},"referencedDeclaration":36253,"src":"14729:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53592,"mutability":"mutable","name":"getter","nameLocation":"14797:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14789:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53591,"name":"address","nodeType":"ElementaryTypeName","src":"14789:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53594,"mutability":"mutable","name":"manager","nameLocation":"14821:7:91","nodeType":"VariableDeclaration","scope":53701,"src":"14813:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53593,"name":"address","nodeType":"ElementaryTypeName","src":"14813:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53596,"mutability":"mutable","name":"pauser","nameLocation":"14846:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14838:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53595,"name":"address","nodeType":"ElementaryTypeName","src":"14838:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53598,"mutability":"mutable","name":"rewarder","nameLocation":"14870:8:91","nodeType":"VariableDeclaration","scope":53701,"src":"14862:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53597,"name":"address","nodeType":"ElementaryTypeName","src":"14862:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53600,"mutability":"mutable","name":"checkpointer","nameLocation":"14896:12:91","nodeType":"VariableDeclaration","scope":53701,"src":"14888:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53599,"name":"address","nodeType":"ElementaryTypeName","src":"14888:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14719:195:91"},"returnParameters":{"id":53605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53701,"src":"14931:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53603,"nodeType":"UserDefinedTypeName","pathNode":{"id":53602,"name":"SubnetActorDiamond","nameLocations":["14931:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14931:18:91"},"referencedDeclaration":36615,"src":"14931:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14930:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53911,"nodeType":"FunctionDefinition","src":"16294:2480:91","nodes":[],"body":{"id":53910,"nodeType":"Block","src":"16409:2365:91","nodes":[],"statements":[{"assignments":[53712],"declarations":[{"constant":false,"id":53712,"mutability":"mutable","name":"manager","nameLocation":"16443:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"16419:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53711,"nodeType":"UserDefinedTypeName","pathNode":{"id":53710,"name":"SubnetActorManagerFacet","nameLocations":["16419:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16419:23:91"},"referencedDeclaration":51946,"src":"16419:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16453:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"SubnetActorManagerFacet","nameLocations":["16457:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16457:23:91"},"referencedDeclaration":51946,"src":"16457:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16419:63:91"},{"assignments":[53720],"declarations":[{"constant":false,"id":53720,"mutability":"mutable","name":"getter","nameLocation":"16515:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16492:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53719,"nodeType":"UserDefinedTypeName","pathNode":{"id":53718,"name":"SubnetActorGetterFacet","nameLocations":["16492:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16492:22:91"},"referencedDeclaration":51235,"src":"16492:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16524:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53722,"nodeType":"UserDefinedTypeName","pathNode":{"id":53721,"name":"SubnetActorGetterFacet","nameLocations":["16528:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16528:22:91"},"referencedDeclaration":51235,"src":"16528:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16524:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16492:60:91"},{"assignments":[53728],"declarations":[{"constant":false,"id":53728,"mutability":"mutable","name":"pauser","nameLocation":"16584:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16562:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53727,"nodeType":"UserDefinedTypeName","pathNode":{"id":53726,"name":"SubnetActorPauseFacet","nameLocations":["16562:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16562:21:91"},"referencedDeclaration":51991,"src":"16562:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16593:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53730,"nodeType":"UserDefinedTypeName","pathNode":{"id":53729,"name":"SubnetActorPauseFacet","nameLocations":["16597:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16597:21:91"},"referencedDeclaration":51991,"src":"16597:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16593:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16562:58:91"},{"assignments":[53736],"declarations":[{"constant":false,"id":53736,"mutability":"mutable","name":"rewarder","nameLocation":"16653:8:91","nodeType":"VariableDeclaration","scope":53910,"src":"16630:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53735,"nodeType":"UserDefinedTypeName","pathNode":{"id":53734,"name":"SubnetActorRewardFacet","nameLocations":["16630:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16630:22:91"},"referencedDeclaration":52158,"src":"16630:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16664:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53738,"nodeType":"UserDefinedTypeName","pathNode":{"id":53737,"name":"SubnetActorRewardFacet","nameLocations":["16668:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16668:22:91"},"referencedDeclaration":52158,"src":"16668:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16664:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16630:62:91"},{"assignments":[53744],"declarations":[{"constant":false,"id":53744,"mutability":"mutable","name":"checkpointer","nameLocation":"16732:12:91","nodeType":"VariableDeclaration","scope":53910,"src":"16702:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"SubnetActorCheckpointingFacet","nameLocations":["16702:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16702:29:91"},"referencedDeclaration":50577,"src":"16702:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53749,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16747:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53746,"nodeType":"UserDefinedTypeName","pathNode":{"id":53745,"name":"SubnetActorCheckpointingFacet","nameLocations":["16751:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16751:29:91"},"referencedDeclaration":50577,"src":"16751:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16702:80:91"},{"assignments":[53752],"declarations":[{"constant":false,"id":53752,"mutability":"mutable","name":"louper","nameLocation":"16811:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16793:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53751,"nodeType":"UserDefinedTypeName","pathNode":{"id":53750,"name":"DiamondLoupeFacet","nameLocations":["16793:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16793:17:91"},"referencedDeclaration":37355,"src":"16793:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53757,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16820:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"DiamondLoupeFacet","nameLocations":["16824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16824:17:91"},"referencedDeclaration":37355,"src":"16824:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16820:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16793:50:91"},{"assignments":[53760],"declarations":[{"constant":false,"id":53760,"mutability":"mutable","name":"cutter","nameLocation":"16869:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16853:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53759,"nodeType":"UserDefinedTypeName","pathNode":{"id":53758,"name":"DiamondCutFacet","nameLocations":["16853:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16853:15:91"},"referencedDeclaration":36918,"src":"16853:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53765,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16878:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53762,"nodeType":"UserDefinedTypeName","pathNode":{"id":53761,"name":"DiamondCutFacet","nameLocations":["16882:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16882:15:91"},"referencedDeclaration":36918,"src":"16882:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16878:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16853:46:91"},{"assignments":[53771],"declarations":[{"constant":false,"id":53771,"mutability":"mutable","name":"diamondCut","nameLocation":"16937:10:91","nodeType":"VariableDeclaration","scope":53910,"src":"16910: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":53769,"nodeType":"UserDefinedTypeName","pathNode":{"id":53768,"name":"IDiamond.FacetCut","nameLocations":["16910:8:91","16919:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16910:17:91"},"referencedDeclaration":40159,"src":"16910:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53770,"nodeType":"ArrayTypeName","src":"16910:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"hexValue":"37","id":53776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16974: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":53775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16950: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":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"IDiamond.FacetCut","nameLocations":["16954:8:91","16963:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16954:17:91"},"referencedDeclaration":40159,"src":"16954:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53774,"nodeType":"ArrayTypeName","src":"16954:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16950: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":"16910:66:91"},{"expression":{"id":53794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53779,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"16987:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53781,"indexExpression":{"hexValue":"30","id":53780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16998: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":"16987:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53786,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"17075:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53784,"name":"address","nodeType":"ElementaryTypeName","src":"17067:7:91","typeDescriptions":{}}},"id":53787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53788,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53791,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"17173: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":53782,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17017:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17026:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17017:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17053:12:91","17101:6:91","17154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17017:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17003:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"16987:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53795,"nodeType":"ExpressionStatement","src":"16987:229:91"},{"expression":{"id":53811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53796,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17227:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53798,"indexExpression":{"hexValue":"31","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17238: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":"17227:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53803,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53720,"src":"17315:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17307:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53801,"name":"address","nodeType":"ElementaryTypeName","src":"17307:7:91","typeDescriptions":{}}},"id":53804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17307:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53805,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17348:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17357:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17348:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17372:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17348:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53808,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"17412: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":53799,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17257:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17257:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17293:12:91","17340:6:91","17393:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17257:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17243:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17227:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53812,"nodeType":"ExpressionStatement","src":"17227:227:91"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17465:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"32","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17476: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":"17465:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53728,"src":"17553:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17545:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17545:7:91","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17545:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17595:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17586:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17610:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17586:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"17650: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":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17495:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17495:17:91","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":["17531:12:91","17578:6:91","17631:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17495:187:91","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":"17481:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17465:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17465:227:91"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17703:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"33","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17714: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":"17703:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53736,"src":"17791:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17783:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17783:7:91","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17783:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17826:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17835:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17826:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17850:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17826:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"17890: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":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17733:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17742:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17733:17:91","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":["17769:12:91","17818:6:91","17871:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17733:191:91","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":"17719:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17703:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17703:231:91"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17945:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"34","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17956: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":"17945:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18033:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18025:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:91","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18025:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18072:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18081:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18072:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18096:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18072:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"18136: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":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17975:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17984:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17975:17:91","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":["18011:12:91","18064:6:91","18117:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17975:199:91","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":"17961:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17945:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17945:239:91"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18195:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"35","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18206: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":"18195:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53760,"src":"18283:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18275:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18275:7:91","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18275:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18316:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18325:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18316:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18340:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18316:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"18380: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":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18225:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18225:17:91","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":["18261:12:91","18308:6:91","18361:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18225:187:91","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":"18211:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18195:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18195:227:91"},{"expression":{"id":53896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53881,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18433:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53883,"indexExpression":{"hexValue":"36","id":53882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18444: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":"18433:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53888,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18521:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18513:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53886,"name":"address","nodeType":"ElementaryTypeName","src":"18513:7:91","typeDescriptions":{}}},"id":53889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18513:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53890,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18554:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18563:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18554:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18578:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18554:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53893,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"18618: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":53884,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18463:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18472:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18463:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18499:12:91","18546:6:91","18599:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18463:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18449:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18433:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53897,"nodeType":"ExpressionStatement","src":"18433:227:91"},{"assignments":[53900],"declarations":[{"constant":false,"id":53900,"mutability":"mutable","name":"diamond","nameLocation":"18690:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"18671:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53899,"nodeType":"UserDefinedTypeName","pathNode":{"id":53898,"name":"SubnetActorDiamond","nameLocations":["18671:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18671:18:91"},"referencedDeclaration":36615,"src":"18671:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53907,"initialValue":{"arguments":[{"id":53904,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18723:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53905,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"18735: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":53903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18700: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":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"SubnetActorDiamond","nameLocations":["18704:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18704:18:91"},"referencedDeclaration":36615,"src":"18704:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18700:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18671:71:91"},{"expression":{"id":53908,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"18760:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53709,"id":53909,"nodeType":"Return","src":"18753:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16303:17:91","parameters":{"id":53705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53704,"mutability":"mutable","name":"params","nameLocation":"16365:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16321:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53703,"nodeType":"UserDefinedTypeName","pathNode":{"id":53702,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16321:18:91","16340:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16321:36:91"},"referencedDeclaration":36253,"src":"16321:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16320:52:91"},"returnParameters":{"id":53709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53911,"src":"16389:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53707,"nodeType":"UserDefinedTypeName","pathNode":{"id":53706,"name":"SubnetActorDiamond","nameLocations":["16389:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16389:18:91"},"referencedDeclaration":36615,"src":"16389:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16388:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53940,"nodeType":"FunctionDefinition","src":"18780:522:91","nodes":[],"body":{"id":53939,"nodeType":"Block","src":"19024:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53928,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53913,"src":"19065:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53929,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53916,"src":"19094:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53930,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53918,"src":"19118:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53931,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53920,"src":"19156:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53932,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53922,"src":"19184:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53924,"src":"19210:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53934,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19243:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19258:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19243:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19282: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":53927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":54243,"src":"19034: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":53937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19034:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53938,"nodeType":"ExpressionStatement","src":"19034:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18789:17:91","parameters":{"id":53925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53913,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18824:15:91","nodeType":"VariableDeclaration","scope":53940,"src":"18816:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53912,"name":"address","nodeType":"ElementaryTypeName","src":"18816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53916,"mutability":"mutable","name":"_consensus","nameLocation":"18863:10:91","nodeType":"VariableDeclaration","scope":53940,"src":"18849:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53915,"nodeType":"UserDefinedTypeName","pathNode":{"id":53914,"name":"ConsensusType","nameLocations":["18849:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18849:13:91"},"referencedDeclaration":37359,"src":"18849:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18891:24:91","nodeType":"VariableDeclaration","scope":53940,"src":"18883:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53917,"name":"uint256","nodeType":"ElementaryTypeName","src":"18883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53920,"mutability":"mutable","name":"_minValidators","nameLocation":"18932:14:91","nodeType":"VariableDeclaration","scope":53940,"src":"18925:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53919,"name":"uint64","nodeType":"ElementaryTypeName","src":"18925:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53922,"mutability":"mutable","name":"_checkPeriod","nameLocation":"18963:12:91","nodeType":"VariableDeclaration","scope":53940,"src":"18956:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53921,"name":"uint64","nodeType":"ElementaryTypeName","src":"18956:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53924,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"18991:19:91","nodeType":"VariableDeclaration","scope":53940,"src":"18985:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53923,"name":"uint8","nodeType":"ElementaryTypeName","src":"18985:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18806:210:91"},"returnParameters":{"id":53926,"nodeType":"ParameterList","parameters":[],"src":"19024:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54243,"nodeType":"FunctionDefinition","src":"19308:3730:91","nodes":[],"body":{"id":54242,"nodeType":"Block","src":"19631:3407:91","nodes":[],"statements":[{"assignments":[53963],"declarations":[{"constant":false,"id":53963,"mutability":"mutable","name":"_parentId","nameLocation":"19657:9:91","nodeType":"VariableDeclaration","scope":54242,"src":"19641:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53962,"nodeType":"UserDefinedTypeName","pathNode":{"id":53961,"name":"SubnetID","nameLocations":["19641:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19641:8:91"},"referencedDeclaration":50030,"src":"19641:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53972,"initialValue":{"arguments":[{"id":53965,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"19678:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19709: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":53968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19695: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":53966,"name":"address","nodeType":"ElementaryTypeName","src":"19699:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53967,"nodeType":"ArrayTypeName","src":"19699:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19695: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":53964,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19669:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19669:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19641:71:91"},{"expression":{"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53973,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"19723:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19735:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53975,"nodeType":"UserDefinedTypeName","pathNode":{"id":53974,"name":"SubnetActorManagerFacet","nameLocations":["19739:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19739:23:91"},"referencedDeclaration":51946,"src":"19739:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19735:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19723:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53979,"nodeType":"ExpressionStatement","src":"19723:41:91"},{"expression":{"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53980,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"19774:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19785:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53982,"nodeType":"UserDefinedTypeName","pathNode":{"id":53981,"name":"SubnetActorGetterFacet","nameLocations":["19789:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19789:22:91"},"referencedDeclaration":51235,"src":"19789:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19774:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53986,"nodeType":"ExpressionStatement","src":"19774:39:91"},{"expression":{"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19823:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19834:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53989,"nodeType":"UserDefinedTypeName","pathNode":{"id":53988,"name":"SubnetActorPauseFacet","nameLocations":["19838:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19838:21:91"},"referencedDeclaration":51991,"src":"19838:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19823:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53993,"nodeType":"ExpressionStatement","src":"19823:38:91"},{"expression":{"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53994,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19871:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19888:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53996,"nodeType":"UserDefinedTypeName","pathNode":{"id":53995,"name":"SubnetActorCheckpointingFacet","nameLocations":["19892:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19892:29:91"},"referencedDeclaration":50577,"src":"19892:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19888:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19871:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54000,"nodeType":"ExpressionStatement","src":"19871:52:91"},{"expression":{"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54001,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"19933:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19946:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54003,"nodeType":"UserDefinedTypeName","pathNode":{"id":54002,"name":"SubnetActorRewardFacet","nameLocations":["19950:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19950:22:91"},"referencedDeclaration":52158,"src":"19950:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19946:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19933:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54007,"nodeType":"ExpressionStatement","src":"19933:41:91"},{"expression":{"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54008,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"19984:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19995:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54010,"nodeType":"UserDefinedTypeName","pathNode":{"id":54009,"name":"DiamondCutFacet","nameLocations":["19999:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"19999:15:91"},"referencedDeclaration":36918,"src":"19999:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19995:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19984:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54014,"nodeType":"ExpressionStatement","src":"19984:32:91"},{"expression":{"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54015,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"20026:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20037:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"DiamondLoupeFacet","nameLocations":["20041:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20041:17:91"},"referencedDeclaration":37355,"src":"20041:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20037:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20026:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54021,"nodeType":"ExpressionStatement","src":"20026:34:91"},{"assignments":[54027],"declarations":[{"constant":false,"id":54027,"mutability":"mutable","name":"diamondCut","nameLocation":"20098:10:91","nodeType":"VariableDeclaration","scope":54242,"src":"20071: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":54025,"nodeType":"UserDefinedTypeName","pathNode":{"id":54024,"name":"IDiamond.FacetCut","nameLocations":["20071:8:91","20080:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20071:17:91"},"referencedDeclaration":40159,"src":"20071:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54026,"nodeType":"ArrayTypeName","src":"20071:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54034,"initialValue":{"arguments":[{"hexValue":"37","id":54032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20135: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":54031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20111: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":54029,"nodeType":"UserDefinedTypeName","pathNode":{"id":54028,"name":"IDiamond.FacetCut","nameLocations":["20115:8:91","20124:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20115:17:91"},"referencedDeclaration":40159,"src":"20115:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54030,"nodeType":"ArrayTypeName","src":"20115:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20111: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":"20071:66:91"},{"expression":{"id":54050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54035,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54037,"indexExpression":{"hexValue":"30","id":54036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20159: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":"20148:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54042,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"20236:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20228:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54040,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:91","typeDescriptions":{}}},"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20228:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54044,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20272:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20281:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20272:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20296:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20272:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54047,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"20336: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":54038,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20178:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20187:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20178:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20214:12:91","20264:6:91","20317:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20178:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20164:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20148:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54051,"nodeType":"ExpressionStatement","src":"20148:231:91"},{"expression":{"id":54067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54052,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20390:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54054,"indexExpression":{"hexValue":"31","id":54053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20401: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":"20390:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54059,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"20478:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20470:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54057,"name":"address","nodeType":"ElementaryTypeName","src":"20470:7:91","typeDescriptions":{}}},"id":54060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20470:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54061,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20513:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20522:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20513:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20537:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20513:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54064,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"20577: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":54055,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20420:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20429:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20420:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20456:12:91","20505:6:91","20558:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20420:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20406:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20390:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54068,"nodeType":"ExpressionStatement","src":"20390:229:91"},{"expression":{"id":54084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54069,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20630:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54071,"indexExpression":{"hexValue":"32","id":54070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20641: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":"20630:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54076,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"20718:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20710:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54074,"name":"address","nodeType":"ElementaryTypeName","src":"20710:7:91","typeDescriptions":{}}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20710:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54078,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20753:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20762:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20753:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20777:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20753:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54081,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"20817: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":54072,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20660:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20669:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20660:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20696:12:91","20745:6:91","20798:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20660:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20646:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20630:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54085,"nodeType":"ExpressionStatement","src":"20630:229:91"},{"expression":{"id":54101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54086,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54088,"indexExpression":{"hexValue":"33","id":54087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20881: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":"20870:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54093,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"20958:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20950:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54091,"name":"address","nodeType":"ElementaryTypeName","src":"20950:7:91","typeDescriptions":{}}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20950:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54095,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20995:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21004:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20995:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21019:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20995:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54098,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"21059: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":54089,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20900:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20909:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20900:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20936:12:91","20987:6:91","21040:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20900:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20886:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20870:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54102,"nodeType":"ExpressionStatement","src":"20870:233:91"},{"expression":{"id":54118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54103,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21114:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54105,"indexExpression":{"hexValue":"34","id":54104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21125: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":"21114:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54110,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"21202:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21194:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54108,"name":"address","nodeType":"ElementaryTypeName","src":"21194:7:91","typeDescriptions":{}}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54112,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21243:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21252:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21243:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21243:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54115,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"21307: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":54106,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21144:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21153:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21144:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21180:12:91","21235:6:91","21288:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21144:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21130:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21114:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54119,"nodeType":"ExpressionStatement","src":"21114:241:91"},{"expression":{"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54120,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54122,"indexExpression":{"hexValue":"35","id":54121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21377: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":"21366:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54127,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"21454:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21446:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54125,"name":"address","nodeType":"ElementaryTypeName","src":"21446:7:91","typeDescriptions":{}}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54129,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21489:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21498:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21489:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21513:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21489:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54132,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"21553: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":54123,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21396:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21396:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21432:12:91","21481:6:91","21534:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21396:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21382:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21366:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54136,"nodeType":"ExpressionStatement","src":"21366:229:91"},{"expression":{"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54137,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21606:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54139,"indexExpression":{"hexValue":"36","id":54138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21617: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":"21606:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54144,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"21694:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21686:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54142,"name":"address","nodeType":"ElementaryTypeName","src":"21686:7:91","typeDescriptions":{}}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21686:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54146,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21729:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21738:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21729:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21753:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21729:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54149,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"21793: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":54140,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21636:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21645:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21636:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21672:12:91","21721:6:91","21774:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21636:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21622:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21606:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54153,"nodeType":"ExpressionStatement","src":"21606:229:91"},{"expression":{"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54154,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"21846:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54158,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21894:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54161,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53963,"src":"21983:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54162,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53942,"src":"22026:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54163,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"22070:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54164,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53947,"src":"22123:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54165,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"22180:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54166,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53951,"src":"22233:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"22283:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54168,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53958,"src":"22343:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22395:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54170,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53956,"src":"22431:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54171,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"22480:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54172,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22533:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22552:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22533:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22533: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":54159,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21918:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21937:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21918:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21973:8:91","22010:14:91","22059:9:91","22098:23:91","22165:13:91","22212:19:91","22263:18:91","22320:21:91","22383:10:91","22415:14:91","22464:14:91","22519:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21918: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":54157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21858: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":54156,"nodeType":"UserDefinedTypeName","pathNode":{"id":54155,"name":"SubnetActorDiamond","nameLocations":["21862:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21862:18:91"},"referencedDeclaration":36615,"src":"21862:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21858:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21846:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54178,"nodeType":"ExpressionStatement","src":"21846:739:91"},{"expression":{"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"22596:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54183,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54181,"name":"address","nodeType":"ElementaryTypeName","src":"22632:7:91","typeDescriptions":{}}},"id":54184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54180,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22608:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22608:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22596:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54187,"nodeType":"ExpressionStatement","src":"22596:55:91"},{"expression":{"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54188,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"22661:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54192,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22702:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22694:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54190,"name":"address","nodeType":"ElementaryTypeName","src":"22694:7:91","typeDescriptions":{}}},"id":54193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54189,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22672:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22672:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22661:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54196,"nodeType":"ExpressionStatement","src":"22661:52:91"},{"expression":{"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54197,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"22723:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54201,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22767:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22759:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54199,"name":"address","nodeType":"ElementaryTypeName","src":"22759:7:91","typeDescriptions":{}}},"id":54202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22759:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54198,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22736:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22736:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22723:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54205,"nodeType":"ExpressionStatement","src":"22723:55:91"},{"expression":{"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54206,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"22788:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54210,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22843:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22835:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54208,"name":"address","nodeType":"ElementaryTypeName","src":"22835:7:91","typeDescriptions":{}}},"id":54211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54207,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22805:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22805:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22788:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54214,"nodeType":"ExpressionStatement","src":"22788:66:91"},{"expression":{"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54215,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"22864:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54219,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22906:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22898:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54217,"name":"address","nodeType":"ElementaryTypeName","src":"22898:7:91","typeDescriptions":{}}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22898:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54216,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22875:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22864:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54223,"nodeType":"ExpressionStatement","src":"22864:53:91"},{"expression":{"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54224,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"22927:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54228,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22962:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54226,"name":"address","nodeType":"ElementaryTypeName","src":"22954:7:91","typeDescriptions":{}}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22954:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54225,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22938:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22927:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54232,"nodeType":"ExpressionStatement","src":"22927:46:91"},{"expression":{"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54233,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"22983:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54237,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"23020:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23012:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54235,"name":"address","nodeType":"ElementaryTypeName","src":"23012:7:91","typeDescriptions":{}}},"id":54238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23012:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54234,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"22994:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22994:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"22983:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54241,"nodeType":"ExpressionStatement","src":"22983:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19317:17:91","parameters":{"id":53959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53942,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19352:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19344:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53941,"name":"address","nodeType":"ElementaryTypeName","src":"19344:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53945,"mutability":"mutable","name":"_consensus","nameLocation":"19391:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"19377:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53944,"nodeType":"UserDefinedTypeName","pathNode":{"id":53943,"name":"ConsensusType","nameLocations":["19377:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19377:13:91"},"referencedDeclaration":37359,"src":"19377:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53947,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19419:24:91","nodeType":"VariableDeclaration","scope":54243,"src":"19411:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53946,"name":"uint256","nodeType":"ElementaryTypeName","src":"19411:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53949,"mutability":"mutable","name":"_minValidators","nameLocation":"19460:14:91","nodeType":"VariableDeclaration","scope":54243,"src":"19453:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53948,"name":"uint64","nodeType":"ElementaryTypeName","src":"19453:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53951,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19491:12:91","nodeType":"VariableDeclaration","scope":54243,"src":"19484:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53950,"name":"uint64","nodeType":"ElementaryTypeName","src":"19484:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53953,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19519:19:91","nodeType":"VariableDeclaration","scope":54243,"src":"19513:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53952,"name":"uint8","nodeType":"ElementaryTypeName","src":"19513:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53956,"mutability":"mutable","name":"_permissionMode","nameLocation":"19563:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19548:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"PermissionMode","nameLocations":["19548:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19548:14:91"},"referencedDeclaration":50118,"src":"19548:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53958,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19595:22:91","nodeType":"VariableDeclaration","scope":54243,"src":"19588:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53957,"name":"uint16","nodeType":"ElementaryTypeName","src":"19588:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19334:289:91"},"returnParameters":{"id":53960,"nodeType":"ParameterList","parameters":[],"src":"19631:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54336,"nodeType":"FunctionDefinition","src":"23044:997:91","nodes":[],"body":{"id":54335,"nodeType":"Block","src":"23136:905:91","nodes":[],"statements":[{"assignments":[54253],"declarations":[{"constant":false,"id":54253,"mutability":"mutable","name":"mockedManager","nameLocation":"23162:13:91","nodeType":"VariableDeclaration","scope":54335,"src":"23146:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":54252,"nodeType":"UserDefinedTypeName","pathNode":{"id":54251,"name":"SubnetActorMock","nameLocations":["23146:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23146:15:91"},"referencedDeclaration":58922,"src":"23146:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54258,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23178:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58922_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54255,"nodeType":"UserDefinedTypeName","pathNode":{"id":54254,"name":"SubnetActorMock","nameLocations":["23182:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23182:15:91"},"referencedDeclaration":58922,"src":"23182:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}},"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23178:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23146:53:91"},{"assignments":[54261],"declarations":[{"constant":false,"id":54261,"mutability":"mutable","name":"getter","nameLocation":"23232:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23209:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54260,"nodeType":"UserDefinedTypeName","pathNode":{"id":54259,"name":"SubnetActorGetterFacet","nameLocations":["23209:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23209:22:91"},"referencedDeclaration":51235,"src":"23209:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23241:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54263,"nodeType":"UserDefinedTypeName","pathNode":{"id":54262,"name":"SubnetActorGetterFacet","nameLocations":["23245:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23245:22:91"},"referencedDeclaration":51235,"src":"23245:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23209:60:91"},{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"diamondCut","nameLocation":"23307:10:91","nodeType":"VariableDeclaration","scope":54335,"src":"23280: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":54270,"nodeType":"UserDefinedTypeName","pathNode":{"id":54269,"name":"IDiamond.FacetCut","nameLocations":["23280:8:91","23289:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23280:17:91"},"referencedDeclaration":40159,"src":"23280:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54271,"nodeType":"ArrayTypeName","src":"23280:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54279,"initialValue":{"arguments":[{"hexValue":"32","id":54277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23344: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":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23320: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":54274,"nodeType":"UserDefinedTypeName","pathNode":{"id":54273,"name":"IDiamond.FacetCut","nameLocations":["23324:8:91","23333:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23324:17:91"},"referencedDeclaration":40159,"src":"23324:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54275,"nodeType":"ArrayTypeName","src":"23324:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23320: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":"23280:66:91"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54280,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23357:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54282,"indexExpression":{"hexValue":"30","id":54281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23368: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":"23357:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54287,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"23445:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}],"id":54286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23437:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54285,"name":"address","nodeType":"ElementaryTypeName","src":"23437:7:91","typeDescriptions":{}}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23437:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54289,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23485:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23485:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23509:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23485:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54292,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"23549: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":54283,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23387:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23396:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23387:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23423:12:91","23477:6:91","23530:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23387:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23373:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23357:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54296,"nodeType":"ExpressionStatement","src":"23357:241:91"},{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54297,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23609:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54299,"indexExpression":{"hexValue":"31","id":54298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23620: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":"23609:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54304,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54261,"src":"23697:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23689:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54302,"name":"address","nodeType":"ElementaryTypeName","src":"23689:7:91","typeDescriptions":{}}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23689:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54306,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23730:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23739:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23730:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23754:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23730:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54309,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"23794: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":54300,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23639:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23648:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23639:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23675:12:91","23722:6:91","23775:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23639:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23625:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23609:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54313,"nodeType":"ExpressionStatement","src":"23609:227:91"},{"assignments":[54318],"declarations":[{"constant":false,"id":54318,"mutability":"mutable","name":"params","nameLocation":"23891:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23847:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54317,"nodeType":"UserDefinedTypeName","pathNode":{"id":54316,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23847:18:91","23866:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23847:36:91"},"referencedDeclaration":36253,"src":"23847:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54322,"initialValue":{"arguments":[{"id":54320,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54245,"src":"23936:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54319,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"23900: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":54321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23900:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23847:92:91"},{"assignments":[54325],"declarations":[{"constant":false,"id":54325,"mutability":"mutable","name":"d","nameLocation":"23969:1:91","nodeType":"VariableDeclaration","scope":54335,"src":"23950:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54324,"nodeType":"UserDefinedTypeName","pathNode":{"id":54323,"name":"SubnetActorDiamond","nameLocations":["23950:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23950:18:91"},"referencedDeclaration":36615,"src":"23950:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54332,"initialValue":{"arguments":[{"id":54329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23996:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54330,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54318,"src":"24008: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":54328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23973: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":54327,"nodeType":"UserDefinedTypeName","pathNode":{"id":54326,"name":"SubnetActorDiamond","nameLocations":["23977:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23977:18:91"},"referencedDeclaration":36615,"src":"23977:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23973:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23950:65:91"},{"expression":{"id":54333,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54325,"src":"24033:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54250,"id":54334,"nodeType":"Return","src":"24026:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23053:34:91","parameters":{"id":54246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54245,"mutability":"mutable","name":"gw","nameLocation":"23096:2:91","nodeType":"VariableDeclaration","scope":54336,"src":"23088:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54244,"name":"address","nodeType":"ElementaryTypeName","src":"23088:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23087:12:91"},"returnParameters":{"id":54250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54336,"src":"23116:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54248,"nodeType":"UserDefinedTypeName","pathNode":{"id":54247,"name":"SubnetActorDiamond","nameLocations":["23116:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23116:18:91"},"referencedDeclaration":36615,"src":"23116:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23115:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54478,"nodeType":"FunctionDefinition","src":"24093:1703:91","nodes":[],"body":{"id":54477,"nodeType":"Block","src":"24231:1565:91","nodes":[],"statements":[{"assignments":[54350],"declarations":[{"constant":false,"id":54350,"mutability":"mutable","name":"diamondCut","nameLocation":"24268:10:91","nodeType":"VariableDeclaration","scope":54477,"src":"24241: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":54348,"nodeType":"UserDefinedTypeName","pathNode":{"id":54347,"name":"IDiamond.FacetCut","nameLocations":["24241:8:91","24250:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24241:17:91"},"referencedDeclaration":40159,"src":"24241:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54349,"nodeType":"ArrayTypeName","src":"24241:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54357,"initialValue":{"arguments":[{"hexValue":"34","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24305: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":54354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24281: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":54352,"nodeType":"UserDefinedTypeName","pathNode":{"id":54351,"name":"IDiamond.FacetCut","nameLocations":["24285:8:91","24294:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24285:17:91"},"referencedDeclaration":40159,"src":"24285:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54353,"nodeType":"ArrayTypeName","src":"24285:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24281: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":"24241:66:91"},{"assignments":[54360],"declarations":[{"constant":false,"id":54360,"mutability":"mutable","name":"regCutFacet","nameLocation":"24334:11:91","nodeType":"VariableDeclaration","scope":54477,"src":"24318:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54359,"nodeType":"UserDefinedTypeName","pathNode":{"id":54358,"name":"DiamondCutFacet","nameLocations":["24318:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24318:15:91"},"referencedDeclaration":36918,"src":"24318:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24348:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54362,"nodeType":"UserDefinedTypeName","pathNode":{"id":54361,"name":"DiamondCutFacet","nameLocations":["24352:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24352:15:91"},"referencedDeclaration":36918,"src":"24352:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24318:51:91"},{"assignments":[54368],"declarations":[{"constant":false,"id":54368,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24397:13:91","nodeType":"VariableDeclaration","scope":54477,"src":"24379:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54367,"nodeType":"UserDefinedTypeName","pathNode":{"id":54366,"name":"DiamondLoupeFacet","nameLocations":["24379:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24379:17:91"},"referencedDeclaration":37355,"src":"24379:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24413:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54370,"nodeType":"UserDefinedTypeName","pathNode":{"id":54369,"name":"DiamondLoupeFacet","nameLocations":["24417:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24417:17:91"},"referencedDeclaration":37355,"src":"24417:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24413:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24379:57:91"},{"assignments":[54376],"declarations":[{"constant":false,"id":54376,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24466:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24446:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54375,"nodeType":"UserDefinedTypeName","pathNode":{"id":54374,"name":"RegisterSubnetFacet","nameLocations":["24446:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24446:19:91"},"referencedDeclaration":52286,"src":"24446:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24483:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54378,"nodeType":"UserDefinedTypeName","pathNode":{"id":54377,"name":"RegisterSubnetFacet","nameLocations":["24487:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24487:19:91"},"referencedDeclaration":52286,"src":"24487:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24483:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24446:62:91"},{"assignments":[54384],"declarations":[{"constant":false,"id":54384,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24536:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24518:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54383,"nodeType":"UserDefinedTypeName","pathNode":{"id":54382,"name":"SubnetGetterFacet","nameLocations":["24518:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24518:17:91"},"referencedDeclaration":52524,"src":"24518:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54389,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24553:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54386,"nodeType":"UserDefinedTypeName","pathNode":{"id":54385,"name":"SubnetGetterFacet","nameLocations":["24557:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24557:17:91"},"referencedDeclaration":52524,"src":"24557:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24553:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24518:58:91"},{"expression":{"id":54405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54390,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24587:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54392,"indexExpression":{"hexValue":"30","id":54391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24598: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":"24587:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54397,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54368,"src":"24675:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24667:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54395,"name":"address","nodeType":"ElementaryTypeName","src":"24667:7:91","typeDescriptions":{}}},"id":54398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24667:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54399,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24715:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24724:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24715:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24739:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24715:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54402,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"24779: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":54393,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24617:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24626:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24617:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24653:12:91","24707:6:91","24760:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24617:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24603:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24587:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54406,"nodeType":"ExpressionStatement","src":"24587:240:91"},{"expression":{"id":54422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54407,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24837:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54409,"indexExpression":{"hexValue":"31","id":54408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24848: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":"24837:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54414,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54360,"src":"24925:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24917:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54412,"name":"address","nodeType":"ElementaryTypeName","src":"24917:7:91","typeDescriptions":{}}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24917:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54416,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24963:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24972:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24963:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24963:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54419,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"25027: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":54410,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24867:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24876:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24867:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24903:12:91","24955:6:91","25008:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24867:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24853:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24837:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54423,"nodeType":"ExpressionStatement","src":"24837:238:91"},{"expression":{"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54424,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25085:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54426,"indexExpression":{"hexValue":"32","id":54425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25096: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":"25085:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54431,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54376,"src":"25173:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25165:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54429,"name":"address","nodeType":"ElementaryTypeName","src":"25165:7:91","typeDescriptions":{}}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25165:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54433,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25214:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25223:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25214:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25238:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25214:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54436,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"25278: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":54427,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25124:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25115:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25151:12:91","25206:6:91","25259:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25115:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25101:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25085:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54440,"nodeType":"ExpressionStatement","src":"25085:246:91"},{"expression":{"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54441,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25341:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54443,"indexExpression":{"hexValue":"33","id":54442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25352: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":"25341:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54448,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"25429:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25421:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54446,"name":"address","nodeType":"ElementaryTypeName","src":"25421:7:91","typeDescriptions":{}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25421:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54450,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25470:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25479:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25470:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25494:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25470:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54453,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"25534: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":54444,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25371:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25380:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25371:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25407:12:91","25462:6:91","25515:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25371:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25357:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25341:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54457,"nodeType":"ExpressionStatement","src":"25341:252:91"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25626:17:91","nodeType":"VariableDeclaration","scope":54477,"src":"25604:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"SubnetRegistryDiamond","nameLocations":["25604:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25604:21:91"},"referencedDeclaration":36853,"src":"25604:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54467,"initialValue":{"arguments":[{"id":54464,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25672:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54465,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"25684: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":54463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25646: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":54462,"nodeType":"UserDefinedTypeName","pathNode":{"id":54461,"name":"SubnetRegistryDiamond","nameLocations":["25650:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25650:21:91"},"referencedDeclaration":36853,"src":"25650:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25646:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25604:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54471,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25736:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25728:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54469,"name":"address","nodeType":"ElementaryTypeName","src":"25728:7:91","typeDescriptions":{}}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25728:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54468,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53086,"src":"25706:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25706:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54474,"nodeType":"EmitStatement","src":"25701:54:91"},{"expression":{"id":54475,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25772:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54344,"id":54476,"nodeType":"Return","src":"25765:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24102:20:91","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"params","nameLocation":"24179:6:91","nodeType":"VariableDeclaration","scope":54478,"src":"24132:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54338,"nodeType":"UserDefinedTypeName","pathNode":{"id":54337,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24132:21:91","24154:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24132:39:91"},"referencedDeclaration":36652,"src":"24132:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24122:69:91"},"returnParameters":{"id":54344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54478,"src":"24208:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54342,"nodeType":"UserDefinedTypeName","pathNode":{"id":54341,"name":"SubnetRegistryDiamond","nameLocations":["24208:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24208:21:91"},"referencedDeclaration":36853,"src":"24208:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24207:23:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54507,"nodeType":"FunctionDefinition","src":"25802:190:91","nodes":[],"body":{"id":54506,"nodeType":"Block","src":"25883:109:91","nodes":[],"statements":[{"body":{"id":54502,"nodeType":"Block","src":"25924:42:91","statements":[{"expression":{"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54496,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25938:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54497,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54481,"src":"25945:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54499,"indexExpression":{"id":54498,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25945:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25938:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54501,"nodeType":"ExpressionStatement","src":"25938:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25912:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25916:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25912:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54503,"initializationExpression":{"assignments":[54487],"declarations":[{"constant":false,"id":54487,"mutability":"mutable","name":"i","nameLocation":"25905:1:91","nodeType":"VariableDeclaration","scope":54503,"src":"25898:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54486,"name":"uint64","nodeType":"ElementaryTypeName","src":"25898:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54489,"initialValue":{"hexValue":"30","id":54488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25898:12:91"},"loopExpression":{"expression":{"id":54494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25919:3:91","subExpression":{"id":54493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25919:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54495,"nodeType":"ExpressionStatement","src":"25919:3:91"},"nodeType":"ForStatement","src":"25893:73:91"},{"expression":{"id":54504,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25982:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54485,"id":54505,"nodeType":"Return","src":"25975:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25811:11:91","parameters":{"id":54482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54481,"mutability":"mutable","name":"weights","nameLocation":"25840:7:91","nodeType":"VariableDeclaration","scope":54507,"src":"25823:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54479,"name":"uint256","nodeType":"ElementaryTypeName","src":"25823:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54480,"nodeType":"ArrayTypeName","src":"25823:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25822:26:91"},"returnParameters":{"id":54485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54484,"mutability":"mutable","name":"sum","nameLocation":"25878:3:91","nodeType":"VariableDeclaration","scope":54507,"src":"25870:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54483,"name":"uint256","nodeType":"ElementaryTypeName","src":"25870:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25869:13:91"},"scope":55675,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54682,"nodeType":"FunctionDefinition","src":"25998:933:91","nodes":[],"body":{"id":54681,"nodeType":"Block","src":"26101:830:91","nodes":[],"statements":[{"expression":{"id":54524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26111: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":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26141: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":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26124: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":54519,"nodeType":"UserDefinedTypeName","pathNode":{"id":54518,"name":"FvmAddress","nameLocations":["26128:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26128:10:91"},"referencedDeclaration":49951,"src":"26128:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54520,"nodeType":"ArrayTypeName","src":"26128:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26124:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26111:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54525,"nodeType":"ExpressionStatement","src":"26111:32:91"},{"expression":{"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54526,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26153:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54528,"indexExpression":{"hexValue":"30","id":54527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26164: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":"26153:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26199: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":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26191:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26194:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26191:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26191:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54529,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26169:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26186:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26169: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":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26169:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26153:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54537,"nodeType":"ExpressionStatement","src":"26153:51:91"},{"expression":{"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54538,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26214:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54540,"indexExpression":{"hexValue":"31","id":54539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26225: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":"26214:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26260: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":54543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26252:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26255:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26252:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26252:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54541,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26230:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26247:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26230: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":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26230:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26214:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54549,"nodeType":"ExpressionStatement","src":"26214:51:91"},{"expression":{"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54550,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26275:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54552,"indexExpression":{"hexValue":"32","id":54551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26286: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":"26275:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26321: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":54555,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26313:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26316:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26313:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26313:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54553,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26291:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26308:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26291: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":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26291:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26275:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54561,"nodeType":"ExpressionStatement","src":"26275:51:91"},{"expression":{"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54562,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26337:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26363: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":54565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26349: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":54563,"name":"address","nodeType":"ElementaryTypeName","src":"26353:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54564,"nodeType":"ArrayTypeName","src":"26353:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26349:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26337:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54569,"nodeType":"ExpressionStatement","src":"26337:28:91"},{"expression":{"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54570,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26375:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54572,"indexExpression":{"hexValue":"30","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26385: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":"26375:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26398: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":54573,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26390:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26393:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26390:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26390:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26375:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54578,"nodeType":"ExpressionStatement","src":"26375:27:91"},{"expression":{"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54579,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54581,"indexExpression":{"hexValue":"31","id":54580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422: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":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435: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":54582,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54583,"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":54585,"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":54587,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54590,"indexExpression":{"hexValue":"32","id":54589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459: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":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472: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":54591,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54592,"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":54594,"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":54596,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"assignments":[54601],"declarations":[{"constant":false,"id":54601,"mutability":"mutable","name":"weights","nameLocation":"26504:7:91","nodeType":"VariableDeclaration","scope":54681,"src":"26487:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26487:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54600,"nodeType":"ArrayTypeName","src":"26487:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54607,"initialValue":{"arguments":[{"hexValue":"33","id":54605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26528: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":54604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26514: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":54602,"name":"uint256","nodeType":"ElementaryTypeName","src":"26518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54603,"nodeType":"ArrayTypeName","src":"26518:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26514:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26487:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26557: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":54611,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26549:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26552:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26549:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26549:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26563: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":54608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26541:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26544:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26541:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26541:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54617,"nodeType":"ExpressionStatement","src":"26541:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26591: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":54621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26583:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26586:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26583:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26583:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26597: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":54618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26575:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26575:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26575:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54627,"nodeType":"ExpressionStatement","src":"26575:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26625: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":54631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26617:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26620:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26617:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26617:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26631: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":54628,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26609:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26612:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26609:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26609:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54637,"nodeType":"ExpressionStatement","src":"26609:24:91"},{"expression":{"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54638,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26644:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54640,"indexExpression":{"hexValue":"30","id":54639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26652: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":"26644:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26657:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26644:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54643,"nodeType":"ExpressionStatement","src":"26644:16:91"},{"expression":{"id":54648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54644,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26670:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54646,"indexExpression":{"hexValue":"31","id":54645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26678: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":"26670:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26683:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26670:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54649,"nodeType":"ExpressionStatement","src":"26670:16:91"},{"expression":{"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54650,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26696:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54652,"indexExpression":{"hexValue":"32","id":54651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26704: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":"26696:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26709:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54655,"nodeType":"ExpressionStatement","src":"26696:16:91"},{"assignments":[54658],"declarations":[{"constant":false,"id":54658,"mutability":"mutable","name":"finality","nameLocation":"26745:8:91","nodeType":"VariableDeclaration","scope":54681,"src":"26723:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54657,"nodeType":"UserDefinedTypeName","pathNode":{"id":54656,"name":"ParentFinality","nameLocations":["26723:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26723:14:91"},"referencedDeclaration":49871,"src":"26723:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54667,"initialValue":{"arguments":[{"expression":{"id":54660,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26780:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26786:6:91","memberName":"number","nodeType":"MemberAccess","src":"26780:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26813: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":54663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26805:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26805:7:91","typeDescriptions":{}}},"id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26805:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54659,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26756:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26772:6:91","26794:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26756:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26723:94:91"},{"expression":{"arguments":[{"expression":{"id":54671,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26837:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26848:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26837:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54668,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26828:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26828:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26828:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54674,"nodeType":"ExpressionStatement","src":"26828:33:91"},{"expression":{"arguments":[{"id":54678,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54658,"src":"26915: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":54675,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"26871:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26894:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26871: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":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26871:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54680,"nodeType":"ExpressionStatement","src":"26871:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26007:15:91","parameters":{"id":54508,"nodeType":"ParameterList","parameters":[],"src":"26022:2:91"},"returnParameters":{"id":54516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54512,"mutability":"mutable","name":"validators","nameLocation":"26061:10:91","nodeType":"VariableDeclaration","scope":54682,"src":"26041: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":54510,"nodeType":"UserDefinedTypeName","pathNode":{"id":54509,"name":"FvmAddress","nameLocations":["26041:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26041:10:91"},"referencedDeclaration":49951,"src":"26041:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54511,"nodeType":"ArrayTypeName","src":"26041:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54515,"mutability":"mutable","name":"addresses","nameLocation":"26090:9:91","nodeType":"VariableDeclaration","scope":54682,"src":"26073:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54513,"name":"address","nodeType":"ElementaryTypeName","src":"26073:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"nodeType":"ArrayTypeName","src":"26073:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26040:60:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54775,"nodeType":"FunctionDefinition","src":"26937:1297:91","nodes":[],"body":{"id":54774,"nodeType":"Block","src":"27021:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54692,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"27046:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54693,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27073:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54691,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55582,"src":"27031:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27031:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54695,"nodeType":"ExpressionStatement","src":"27031:46:91"},{"assignments":[54698],"declarations":[{"constant":false,"id":54698,"mutability":"mutable","name":"crossMsg","nameLocation":"27104:8:91","nodeType":"VariableDeclaration","scope":54774,"src":"27088:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54697,"nodeType":"UserDefinedTypeName","pathNode":{"id":54696,"name":"CrossMsg","nameLocations":["27088:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27088:8:91"},"referencedDeclaration":49927,"src":"27088:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54738,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54706,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27267:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54702,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27226:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27235:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27226:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27252:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27226: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":54707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54710,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27330:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54708,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27308:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27325:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27308: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":54711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308: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":54701,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27183:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27216:8:91","27296:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27183:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54718,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27462:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54714,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27421:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27430:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27421:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27447:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27421: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":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54722,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27522:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54720,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27500:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27517:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27500: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":54723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27500: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":54713,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27378:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27411:8:91","27488:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27378:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54725,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27570:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27594:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27570:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54729,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27647:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27694: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":54731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27684:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54730,"name":"bytes","nodeType":"ElementaryTypeName","src":"27688:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27684:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54734,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27719: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":54700,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27147:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27177:4:91","27374:2:91","27563:5:91","27613:5:91","27639:6:91","27676:6:91","27714:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27147:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27778: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":54699,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27138:7:91","27769:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27115:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27088:706:91"},{"assignments":[54743],"declarations":[{"constant":false,"id":54743,"mutability":"mutable","name":"msgs","nameLocation":"27822:4:91","nodeType":"VariableDeclaration","scope":54774,"src":"27804: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":54741,"nodeType":"UserDefinedTypeName","pathNode":{"id":54740,"name":"CrossMsg","nameLocations":["27804:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27804:8:91"},"referencedDeclaration":49927,"src":"27804:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54742,"nodeType":"ArrayTypeName","src":"27804:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54750,"initialValue":{"arguments":[{"hexValue":"31","id":54748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844: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":54747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27829: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":54745,"nodeType":"UserDefinedTypeName","pathNode":{"id":54744,"name":"CrossMsg","nameLocations":["27833:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27833:8:91"},"referencedDeclaration":49927,"src":"27833:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54746,"nodeType":"ArrayTypeName","src":"27833:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27829: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":"27804:42:91"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"27856:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54753,"indexExpression":{"hexValue":"30","id":54752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27861: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":"27856:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"27866:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27856:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54756,"nodeType":"ExpressionStatement","src":"27856:18:91"},{"expression":{"arguments":[{"expression":{"id":54760,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28113:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28124:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28113:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54757,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28104:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28107:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28104:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28104:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54763,"nodeType":"ExpressionStatement","src":"28104:33:91"},{"expression":{"arguments":[{"id":54767,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"28187: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":54764,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"28147:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28168:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28147: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":54768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28147:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54769,"nodeType":"ExpressionStatement","src":"28147:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54770,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"28210:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28219:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28210: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":54772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28210:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54690,"id":54773,"nodeType":"Return","src":"28203:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26946:20:91","parameters":{"id":54687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54684,"mutability":"mutable","name":"caller","nameLocation":"26975:6:91","nodeType":"VariableDeclaration","scope":54775,"src":"26967:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54683,"name":"address","nodeType":"ElementaryTypeName","src":"26967:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54686,"mutability":"mutable","name":"src","nameLocation":"26991:3:91","nodeType":"VariableDeclaration","scope":54775,"src":"26983:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54685,"name":"address","nodeType":"ElementaryTypeName","src":"26983:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26966:29:91"},"returnParameters":{"id":54690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54775,"src":"27012:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27012:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27011:9:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54786,"nodeType":"FunctionDefinition","src":"28240:93:91","nodes":[],"body":{"id":54785,"nodeType":"Block","src":"28288:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54781,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54777,"src":"28311:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28322: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":54780,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"28298:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28298:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54784,"nodeType":"ExpressionStatement","src":"28298:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28249:12:91","parameters":{"id":54778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54777,"mutability":"mutable","name":"validator","nameLocation":"28270:9:91","nodeType":"VariableDeclaration","scope":54786,"src":"28262:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54776,"name":"address","nodeType":"ElementaryTypeName","src":"28262:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28261:19:91"},"returnParameters":{"id":54779,"nodeType":"ParameterList","parameters":[],"src":"28288:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54869,"nodeType":"FunctionDefinition","src":"28339:610:91","nodes":[],"body":{"id":54868,"nodeType":"Block","src":"28403:546:91","nodes":[],"statements":[{"assignments":[54797],"declarations":[{"constant":false,"id":54797,"mutability":"mutable","name":"validators","nameLocation":"28433:10:91","nodeType":"VariableDeclaration","scope":54868,"src":"28413: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":54795,"nodeType":"UserDefinedTypeName","pathNode":{"id":54794,"name":"FvmAddress","nameLocations":["28413:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28413:10:91"},"referencedDeclaration":49951,"src":"28413:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54796,"nodeType":"ArrayTypeName","src":"28413:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54804,"initialValue":{"arguments":[{"hexValue":"31","id":54802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28463: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":54801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28446: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":54799,"nodeType":"UserDefinedTypeName","pathNode":{"id":54798,"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":54800,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28446: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":"28413:52:91"},{"expression":{"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54805,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54797,"src":"28475:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54807,"indexExpression":{"hexValue":"30","id":54806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28486: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":"28475:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54810,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28513:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54808,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28491:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28508:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28491: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":54811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28491:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28475:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54813,"nodeType":"ExpressionStatement","src":"28475:48:91"},{"assignments":[54818],"declarations":[{"constant":false,"id":54818,"mutability":"mutable","name":"weights","nameLocation":"28550:7:91","nodeType":"VariableDeclaration","scope":54868,"src":"28533:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54816,"name":"uint256","nodeType":"ElementaryTypeName","src":"28533:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54817,"nodeType":"ArrayTypeName","src":"28533:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54824,"initialValue":{"arguments":[{"hexValue":"31","id":54822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28574: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":54821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28560: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":54819,"name":"uint256","nodeType":"ElementaryTypeName","src":"28564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54820,"nodeType":"ArrayTypeName","src":"28564:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28560:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28533:43:91"},{"expression":{"id":54829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54825,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"28586:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54827,"indexExpression":{"hexValue":"30","id":54826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28594: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":"28586:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54828,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"28599:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28586:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54830,"nodeType":"ExpressionStatement","src":"28586:19:91"},{"expression":{"arguments":[{"id":54834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28624:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28635: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":54831,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28616:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28619:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28616:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28616:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54837,"nodeType":"ExpressionStatement","src":"28616:21:91"},{"assignments":[54840],"declarations":[{"constant":false,"id":54840,"mutability":"mutable","name":"finality","nameLocation":"28669:8:91","nodeType":"VariableDeclaration","scope":54868,"src":"28647:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54839,"nodeType":"UserDefinedTypeName","pathNode":{"id":54838,"name":"ParentFinality","nameLocations":["28647:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28647:14:91"},"referencedDeclaration":49871,"src":"28647:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54849,"initialValue":{"arguments":[{"expression":{"id":54842,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28704:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28710:6:91","memberName":"number","nodeType":"MemberAccess","src":"28704:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28737: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":54845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28729:7:91","typeDescriptions":{}}},"id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54841,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28680:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:6:91","28718:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28680:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28647:94:91"},{"expression":{"arguments":[{"expression":{"id":54853,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28831:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28842:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28831:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54850,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28817:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28820:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28817:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28817:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54856,"nodeType":"ExpressionStatement","src":"28817:38:91"},{"expression":{"arguments":[{"id":54860,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54840,"src":"28909: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":54857,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"28865:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28888:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28865: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":54861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28865:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54862,"nodeType":"ExpressionStatement","src":"28865:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28928:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28931:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28928:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28928:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54867,"nodeType":"ExpressionStatement","src":"28928:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28348:12:91","parameters":{"id":54791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54788,"mutability":"mutable","name":"validator","nameLocation":"28369:9:91","nodeType":"VariableDeclaration","scope":54869,"src":"28361:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54787,"name":"address","nodeType":"ElementaryTypeName","src":"28361:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54790,"mutability":"mutable","name":"weight","nameLocation":"28388:6:91","nodeType":"VariableDeclaration","scope":54869,"src":"28380:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54789,"name":"uint256","nodeType":"ElementaryTypeName","src":"28380:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28360:35:91"},"returnParameters":{"id":54792,"nodeType":"ParameterList","parameters":[],"src":"28403:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54882,"nodeType":"FunctionDefinition","src":"28955:112:91","nodes":[],"body":{"id":54881,"nodeType":"Block","src":"28999:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29021:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"29053: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":54874,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29009:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29017:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29009:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29009:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54880,"nodeType":"ExpressionStatement","src":"29009:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"28964:6:91","parameters":{"id":54872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54871,"mutability":"mutable","name":"amount","nameLocation":"28979:6:91","nodeType":"VariableDeclaration","scope":54882,"src":"28971:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"28971:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28970:16:91"},"returnParameters":{"id":54873,"nodeType":"ParameterList","parameters":[],"src":"28999:0:91"},"scope":55675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54897,"nodeType":"FunctionDefinition","src":"29073:131:91","nodes":[],"body":{"id":54896,"nodeType":"Block","src":"29137:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54890,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54884,"src":"29152:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54891,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54886,"src":"29167:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54892,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29179:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29190:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29179: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":54889,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54897,55022],"referencedDeclaration":55022,"src":"29147:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29147:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54895,"nodeType":"ExpressionStatement","src":"29147:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29082:4:91","parameters":{"id":54887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54884,"mutability":"mutable","name":"funderAddress","nameLocation":"29095:13:91","nodeType":"VariableDeclaration","scope":54897,"src":"29087:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"29087:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54886,"mutability":"mutable","name":"fundAmount","nameLocation":"29118:10:91","nodeType":"VariableDeclaration","scope":54897,"src":"29110:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54885,"name":"uint256","nodeType":"ElementaryTypeName","src":"29110:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29086:43:91"},"returnParameters":{"id":54888,"nodeType":"ParameterList","parameters":[],"src":"29137:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55022,"nodeType":"FunctionDefinition","src":"29210:1180:91","nodes":[],"body":{"id":55021,"nodeType":"Block","src":"29291:1099:91","nodes":[],"statements":[{"assignments":[54909,null,54911,null,54913],"declarations":[{"constant":false,"id":54909,"mutability":"mutable","name":"subnetId","nameLocation":"29383:8:91","nodeType":"VariableDeclaration","scope":55021,"src":"29367:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54908,"nodeType":"UserDefinedTypeName","pathNode":{"id":54907,"name":"SubnetID","nameLocations":["29367:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29367:8:91"},"referencedDeclaration":50030,"src":"29367:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54911,"mutability":"mutable","name":"nonceBefore","nameLocation":"29403:11:91","nodeType":"VariableDeclaration","scope":55021,"src":"29395:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54910,"name":"uint256","nodeType":"ElementaryTypeName","src":"29395:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54913,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29426:16:91","nodeType":"VariableDeclaration","scope":55021,"src":"29418:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"29418:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54920,"initialValue":{"arguments":[{"arguments":[{"id":54917,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"29464:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29456:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54915,"name":"address","nodeType":"ElementaryTypeName","src":"29456:7:91","typeDescriptions":{}}},"id":54918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54914,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"29446: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":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29446: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":"29366:109:91"},{"assignments":[54922],"declarations":[{"constant":false,"id":54922,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29494:25:91","nodeType":"VariableDeclaration","scope":55021,"src":"29486:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54921,"name":"uint256","nodeType":"ElementaryTypeName","src":"29486:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54929,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54925,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29558: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":54923,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29522:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29531:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29522: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":54926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29522:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29570:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29522:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29486:85:91"},{"assignments":[54931],"declarations":[{"constant":false,"id":54931,"mutability":"mutable","name":"expectedNonce","nameLocation":"29589:13:91","nodeType":"VariableDeclaration","scope":55021,"src":"29581:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54930,"name":"uint256","nodeType":"ElementaryTypeName","src":"29581:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54935,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54932,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"29605:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29619:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29605:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29581:39:91"},{"assignments":[54937],"declarations":[{"constant":false,"id":54937,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29638:18:91","nodeType":"VariableDeclaration","scope":55021,"src":"29630:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54936,"name":"uint256","nodeType":"ElementaryTypeName","src":"29630:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54941,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54938,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54913,"src":"29659:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54939,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29678:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29659:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29630:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54943,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29707:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29716:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29707:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29707:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29707:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29735: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":54942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29699:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29699:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54950,"nodeType":"ExpressionStatement","src":"29699:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54951,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29769:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54952,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29777:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29788:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29777:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29769:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54968,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29912:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54969,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29920:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29931:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29920:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29912:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54984,"nodeType":"IfStatement","src":"29908:138:91","trueBody":{"id":54983,"nodeType":"Block","src":"29938:108:91","statements":[{"expression":{"arguments":[{"id":54975,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29976:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54978,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"30008:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54976,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29986:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30003:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29986: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":54979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29986:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54980,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"30024: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":54972,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29952:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29962:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29952: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":54981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29952:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54982,"nodeType":"ExpressionStatement","src":"29952:83:91"}]}},"id":54985,"nodeType":"IfStatement","src":"29765:281:91","trueBody":{"id":54967,"nodeType":"Block","src":"29796:106:91","statements":[{"expression":{"arguments":[{"id":54960,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29844:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54963,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"29876:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54961,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29854:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29871:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29854: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":54964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29854: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":54955,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29810:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29820:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29810: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":54959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54958,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29832:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29810: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":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54966,"nodeType":"ExpressionStatement","src":"29810:81:91"}]}},{"assignments":[null,null,54987,null,54989],"declarations":[null,null,{"constant":false,"id":54987,"mutability":"mutable","name":"nonce","nameLocation":"30069:5:91","nodeType":"VariableDeclaration","scope":55021,"src":"30061:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54986,"name":"uint256","nodeType":"ElementaryTypeName","src":"30061:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54989,"mutability":"mutable","name":"circSupply","nameLocation":"30086:10:91","nodeType":"VariableDeclaration","scope":55021,"src":"30078:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54988,"name":"uint256","nodeType":"ElementaryTypeName","src":"30078:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54996,"initialValue":{"arguments":[{"arguments":[{"id":54993,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30118:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30110:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"30110:7:91","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30110:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54990,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"30100: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":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30100: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":"30056:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55000,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"30184: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":54998,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"30148:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30157:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30148: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":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30148:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55002,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54922,"src":"30197:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30148:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30224: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":54997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30140:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30140:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55006,"nodeType":"ExpressionStatement","src":"30140:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55008,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54987,"src":"30264:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55009,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54931,"src":"30273:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30264:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30288: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":55007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30256:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30256:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55013,"nodeType":"ExpressionStatement","src":"30256:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55015,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54989,"src":"30325:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55016,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54937,"src":"30339:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30325:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30359: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":55014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30317:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30317:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55020,"nodeType":"ExpressionStatement","src":"30317:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29219:4:91","parameters":{"id":54905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54899,"mutability":"mutable","name":"funderAddress","nameLocation":"29232:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29224:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54898,"name":"address","nodeType":"ElementaryTypeName","src":"29224:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54901,"mutability":"mutable","name":"fundAmount","nameLocation":"29255:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"29247:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54900,"name":"uint256","nodeType":"ElementaryTypeName","src":"29247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54904,"mutability":"mutable","name":"mode","nameLocation":"29278:4:91","nodeType":"VariableDeclaration","scope":55022,"src":"29267:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54903,"nodeType":"UserDefinedTypeName","pathNode":{"id":54902,"name":"SupplyKind","nameLocations":["29267:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29267:10:91"},"referencedDeclaration":50182,"src":"29267:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29223:60:91"},"returnParameters":{"id":54906,"nodeType":"ParameterList","parameters":[],"src":"29291:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55053,"nodeType":"FunctionDefinition","src":"30396:243:91","nodes":[],"body":{"id":55052,"nodeType":"Block","src":"30464:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55032,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30483:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30474:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30477:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30474:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30474:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55034,"nodeType":"ExpressionStatement","src":"30474:26:91"},{"expression":{"arguments":[{"id":55038,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30518:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55039,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30536:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30536:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55035,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30510:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30513:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30510:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30510:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55043,"nodeType":"ExpressionStatement","src":"30510:56:91"},{"expression":{"arguments":[{"id":55049,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"30625: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":55044,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30576:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30586:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30576:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55047,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30598:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30576:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30576:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55051,"nodeType":"ExpressionStatement","src":"30576:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30405:4:91","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55024,"mutability":"mutable","name":"validatorAddress","nameLocation":"30418:16:91","nodeType":"VariableDeclaration","scope":55053,"src":"30410:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55023,"name":"address","nodeType":"ElementaryTypeName","src":"30410:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55026,"mutability":"mutable","name":"pubkey","nameLocation":"30449:6:91","nodeType":"VariableDeclaration","scope":55053,"src":"30436:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55025,"name":"bytes","nodeType":"ElementaryTypeName","src":"30436:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30409:47:91"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[],"src":"30464:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55100,"nodeType":"FunctionDefinition","src":"30645:298:91","nodes":[],"body":{"id":55099,"nodeType":"Block","src":"30713:230:91","nodes":[],"statements":[{"assignments":[55064],"declarations":[{"constant":false,"id":55064,"mutability":"mutable","name":"validators","nameLocation":"30740:10:91","nodeType":"VariableDeclaration","scope":55099,"src":"30723:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55062,"name":"address","nodeType":"ElementaryTypeName","src":"30723:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55063,"nodeType":"ArrayTypeName","src":"30723:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55070,"initialValue":{"arguments":[{"hexValue":"31","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30767: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":55067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30753: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":55065,"name":"address","nodeType":"ElementaryTypeName","src":"30757:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55066,"nodeType":"ArrayTypeName","src":"30757:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30753:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30723:46:91"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55071,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30779:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55073,"indexExpression":{"hexValue":"30","id":55072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30790: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":"30779:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55055,"src":"30795:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30779:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55076,"nodeType":"ExpressionStatement","src":"30779:25:91"},{"assignments":[55081],"declarations":[{"constant":false,"id":55081,"mutability":"mutable","name":"privKeys","nameLocation":"30832:8:91","nodeType":"VariableDeclaration","scope":55099,"src":"30815:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55079,"name":"uint256","nodeType":"ElementaryTypeName","src":"30815:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55080,"nodeType":"ArrayTypeName","src":"30815:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55087,"initialValue":{"arguments":[{"hexValue":"31","id":55085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30857: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":55084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30843: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":55082,"name":"uint256","nodeType":"ElementaryTypeName","src":"30847:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55083,"nodeType":"ArrayTypeName","src":"30847:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30843:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30815:44:91"},{"expression":{"id":55092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55088,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30869:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55090,"indexExpression":{"hexValue":"30","id":55089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30878: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":"30869:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55091,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55057,"src":"30883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30869:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55093,"nodeType":"ExpressionStatement","src":"30869:21:91"},{"expression":{"arguments":[{"id":55095,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30915:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55096,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30927: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":55094,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"30901: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":55097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30901:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55098,"nodeType":"ExpressionStatement","src":"30901:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30654:13:91","parameters":{"id":55058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55055,"mutability":"mutable","name":"validator","nameLocation":"30676:9:91","nodeType":"VariableDeclaration","scope":55100,"src":"30668:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55054,"name":"address","nodeType":"ElementaryTypeName","src":"30668:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55057,"mutability":"mutable","name":"privKey","nameLocation":"30695:7:91","nodeType":"VariableDeclaration","scope":55100,"src":"30687:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55056,"name":"uint256","nodeType":"ElementaryTypeName","src":"30687:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30667:36:91"},"returnParameters":{"id":55059,"nodeType":"ParameterList","parameters":[],"src":"30713:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55163,"nodeType":"FunctionDefinition","src":"30949:408:91","nodes":[],"body":{"id":55162,"nodeType":"Block","src":"31057:300:91","nodes":[],"statements":[{"assignments":[55115],"declarations":[{"constant":false,"id":55115,"mutability":"mutable","name":"validators","nameLocation":"31084:10:91","nodeType":"VariableDeclaration","scope":55162,"src":"31067:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55113,"name":"address","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55114,"nodeType":"ArrayTypeName","src":"31067:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55121,"initialValue":{"arguments":[{"hexValue":"32","id":55119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31111: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":55118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31097: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":55116,"name":"address","nodeType":"ElementaryTypeName","src":"31101:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55117,"nodeType":"ArrayTypeName","src":"31101:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31097:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31067:46:91"},{"expression":{"id":55126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55122,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31123:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55124,"indexExpression":{"hexValue":"30","id":55123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31134: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":"31123:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55125,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55102,"src":"31139:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31123:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55127,"nodeType":"ExpressionStatement","src":"31123:26:91"},{"expression":{"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55128,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31159:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55130,"indexExpression":{"hexValue":"31","id":55129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31170: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":"31159:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55131,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55106,"src":"31175:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31159:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55133,"nodeType":"ExpressionStatement","src":"31159:26:91"},{"assignments":[55138],"declarations":[{"constant":false,"id":55138,"mutability":"mutable","name":"privKeys","nameLocation":"31213:8:91","nodeType":"VariableDeclaration","scope":55162,"src":"31196:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55136,"name":"uint256","nodeType":"ElementaryTypeName","src":"31196:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55137,"nodeType":"ArrayTypeName","src":"31196:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55144,"initialValue":{"arguments":[{"hexValue":"32","id":55142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31238: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":55141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31224: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":55139,"name":"uint256","nodeType":"ElementaryTypeName","src":"31228:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55140,"nodeType":"ArrayTypeName","src":"31228:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31224:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31196:44:91"},{"expression":{"id":55149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55145,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31250:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55147,"indexExpression":{"hexValue":"30","id":55146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31259: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":"31250:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55148,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55104,"src":"31264:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31250:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55150,"nodeType":"ExpressionStatement","src":"31250:22:91"},{"expression":{"id":55155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55151,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31282:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55153,"indexExpression":{"hexValue":"31","id":55152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31291: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":"31282:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55154,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55108,"src":"31296:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31282:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55156,"nodeType":"ExpressionStatement","src":"31282:22:91"},{"expression":{"arguments":[{"id":55158,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31329:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55159,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31341: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":55157,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31315: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":55160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31315:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55161,"nodeType":"ExpressionStatement","src":"31315:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30958:13:91","parameters":{"id":55109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55102,"mutability":"mutable","name":"validator1","nameLocation":"30980:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"30972:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55101,"name":"address","nodeType":"ElementaryTypeName","src":"30972:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55104,"mutability":"mutable","name":"privKey1","nameLocation":"31000:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"30992:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55103,"name":"uint256","nodeType":"ElementaryTypeName","src":"30992:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55106,"mutability":"mutable","name":"validator2","nameLocation":"31018:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31010:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55105,"name":"address","nodeType":"ElementaryTypeName","src":"31010:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55108,"mutability":"mutable","name":"privKey2","nameLocation":"31038:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31030:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55107,"name":"uint256","nodeType":"ElementaryTypeName","src":"31030:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30971:76:91"},"returnParameters":{"id":55110,"nodeType":"ParameterList","parameters":[],"src":"31057:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55242,"nodeType":"FunctionDefinition","src":"31363:568:91","nodes":[],"body":{"id":55241,"nodeType":"Block","src":"31563:368:91","nodes":[],"statements":[{"assignments":[55182],"declarations":[{"constant":false,"id":55182,"mutability":"mutable","name":"validators","nameLocation":"31590:10:91","nodeType":"VariableDeclaration","scope":55241,"src":"31573:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55180,"name":"address","nodeType":"ElementaryTypeName","src":"31573:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55181,"nodeType":"ArrayTypeName","src":"31573:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55188,"initialValue":{"arguments":[{"hexValue":"33","id":55186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31617: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":55185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31603: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":55183,"name":"address","nodeType":"ElementaryTypeName","src":"31607:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55184,"nodeType":"ArrayTypeName","src":"31607:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31573:46:91"},{"expression":{"id":55193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55189,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31629:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55191,"indexExpression":{"hexValue":"30","id":55190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31640: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":"31629:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55192,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55165,"src":"31645:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31629:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55194,"nodeType":"ExpressionStatement","src":"31629:26:91"},{"expression":{"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55195,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31665:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55197,"indexExpression":{"hexValue":"31","id":55196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31676: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":"31665:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55198,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55169,"src":"31681:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31665:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55200,"nodeType":"ExpressionStatement","src":"31665:26:91"},{"expression":{"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55201,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31701:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55203,"indexExpression":{"hexValue":"32","id":55202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31712: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":"31701:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55204,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55173,"src":"31717:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31701:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55206,"nodeType":"ExpressionStatement","src":"31701:26:91"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"privKeys","nameLocation":"31755:8:91","nodeType":"VariableDeclaration","scope":55241,"src":"31738:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55209,"name":"uint256","nodeType":"ElementaryTypeName","src":"31738:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55210,"nodeType":"ArrayTypeName","src":"31738:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55217,"initialValue":{"arguments":[{"hexValue":"33","id":55215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31780: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":55214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31766: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":55212,"name":"uint256","nodeType":"ElementaryTypeName","src":"31770:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55213,"nodeType":"ArrayTypeName","src":"31770:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31766:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31738:44:91"},{"expression":{"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55218,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31792:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55220,"indexExpression":{"hexValue":"30","id":55219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31801: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":"31792:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55221,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55167,"src":"31806:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31792:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55223,"nodeType":"ExpressionStatement","src":"31792:22:91"},{"expression":{"id":55228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55224,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31824:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55226,"indexExpression":{"hexValue":"31","id":55225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31833: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":"31824:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55227,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55171,"src":"31838:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31824:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55229,"nodeType":"ExpressionStatement","src":"31824:22:91"},{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55230,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31856:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55232,"indexExpression":{"hexValue":"32","id":55231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31865: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":"31856:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55233,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55175,"src":"31870:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31856:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55235,"nodeType":"ExpressionStatement","src":"31856:22:91"},{"expression":{"arguments":[{"id":55237,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31903:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55238,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31915: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":55236,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31889: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":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31889:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55240,"nodeType":"ExpressionStatement","src":"31889:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31372:13:91","parameters":{"id":55176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55165,"mutability":"mutable","name":"validator1","nameLocation":"31403:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31395:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55164,"name":"address","nodeType":"ElementaryTypeName","src":"31395:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55167,"mutability":"mutable","name":"privKey1","nameLocation":"31431:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31423:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55166,"name":"uint256","nodeType":"ElementaryTypeName","src":"31423:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55169,"mutability":"mutable","name":"validator2","nameLocation":"31457:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31449:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55168,"name":"address","nodeType":"ElementaryTypeName","src":"31449:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55171,"mutability":"mutable","name":"privKey2","nameLocation":"31485:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31477:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55170,"name":"uint256","nodeType":"ElementaryTypeName","src":"31477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55173,"mutability":"mutable","name":"validator3","nameLocation":"31511:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31503:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55172,"name":"address","nodeType":"ElementaryTypeName","src":"31503:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55175,"mutability":"mutable","name":"privKey3","nameLocation":"31539:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31531:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55174,"name":"uint256","nodeType":"ElementaryTypeName","src":"31531:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31385:168:91"},"returnParameters":{"id":55177,"nodeType":"ParameterList","parameters":[],"src":"31563:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55393,"nodeType":"FunctionDefinition","src":"31937:1107:91","nodes":[],"body":{"id":55392,"nodeType":"Block","src":"32025:1019:91","nodes":[],"statements":[{"assignments":[55252],"declarations":[{"constant":false,"id":55252,"mutability":"mutable","name":"n","nameLocation":"32043:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32035:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55251,"name":"uint256","nodeType":"ElementaryTypeName","src":"32035:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55255,"initialValue":{"expression":{"id":55253,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32047:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32058:6:91","memberName":"length","nodeType":"MemberAccess","src":"32047:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32035:29:91"},{"assignments":[55260],"declarations":[{"constant":false,"id":55260,"mutability":"mutable","name":"signatures","nameLocation":"32090:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32075:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55258,"name":"bytes","nodeType":"ElementaryTypeName","src":"32075:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55259,"nodeType":"ArrayTypeName","src":"32075:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55266,"initialValue":{"arguments":[{"id":55264,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32115:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32103: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":55261,"name":"bytes","nodeType":"ElementaryTypeName","src":"32107:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55262,"nodeType":"ArrayTypeName","src":"32107:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32103:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32075:42:91"},{"assignments":[55268,null],"declarations":[{"constant":false,"id":55268,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32136:13:91","nodeType":"VariableDeclaration","scope":55392,"src":"32129:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55267,"name":"uint64","nodeType":"ElementaryTypeName","src":"32129:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32155:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32164:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32155:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32155:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32128:61:91"},{"assignments":[55274],"declarations":[{"constant":false,"id":55274,"mutability":"mutable","name":"h","nameLocation":"32208:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32200:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55273,"name":"uint256","nodeType":"ElementaryTypeName","src":"32200:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55282,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55275,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32212:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32221:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32212:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32212:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55278,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32254:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32263:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32254:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32254:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32212:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32200:84:91"},{"assignments":[55285],"declarations":[{"constant":false,"id":55285,"mutability":"mutable","name":"checkpoint","nameLocation":"32321:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32295:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55284,"nodeType":"UserDefinedTypeName","pathNode":{"id":55283,"name":"BottomUpCheckpoint","nameLocations":["32295:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32295:18:91"},"referencedDeclaration":49885,"src":"32295:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55307,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55293,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32421:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32413:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55291,"name":"address","nodeType":"ElementaryTypeName","src":"32413:7:91","typeDescriptions":{}}},"id":55294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32413:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55287,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32377:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32386:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32377:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32398:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32377: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":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55296,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32459:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55300,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32506:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32495:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32499:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32495:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32495:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55297,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32485:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32485:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55303,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"32548:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32548: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":55286,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32334:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32367:8:91","32446:11:91","32474:9:91","32523:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32334:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32295:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55313,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32603:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32595:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55311,"name":"address","nodeType":"ElementaryTypeName","src":"32595:7:91","typeDescriptions":{}}},"id":55314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32595:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32615: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":55308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32587:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32590:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32587:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32587:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55317,"nodeType":"ExpressionStatement","src":"32587:38:91"},{"assignments":[55319],"declarations":[{"constant":false,"id":55319,"mutability":"mutable","name":"hash","nameLocation":"32644:4:91","nodeType":"VariableDeclaration","scope":55392,"src":"32636:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32636:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55326,"initialValue":{"arguments":[{"arguments":[{"id":55323,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32672: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":55321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32661:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32665:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32661:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32661:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55320,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32651:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32651:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32636:48:91"},{"body":{"id":55362,"nodeType":"Block","src":"32727:140:91","statements":[{"assignments":[55338,55340,55342],"declarations":[{"constant":false,"id":55338,"mutability":"mutable","name":"v","nameLocation":"32748:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32742:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55337,"name":"uint8","nodeType":"ElementaryTypeName","src":"32742:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55340,"mutability":"mutable","name":"r","nameLocation":"32759:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32751:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32751:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55342,"mutability":"mutable","name":"s","nameLocation":"32770:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32762:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32762:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55350,"initialValue":{"arguments":[{"baseExpression":{"id":55345,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55248,"src":"32783:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55347,"indexExpression":{"id":55346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32792:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32783:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55348,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55319,"src":"32796:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55343,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32775:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32778:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32775: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":55349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32775:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32741:60:91"},{"expression":{"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55351,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"32815:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55353,"indexExpression":{"id":55352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32826:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32815:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55356,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"32848:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55342,"src":"32851:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"32854: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":55354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32831:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32835:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32831:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32831:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32815:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55361,"nodeType":"ExpressionStatement","src":"32815:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32715:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55332,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32719:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32715:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55363,"initializationExpression":{"assignments":[55328],"declarations":[{"constant":false,"id":55328,"mutability":"mutable","name":"i","nameLocation":"32708:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32700:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55327,"name":"uint256","nodeType":"ElementaryTypeName","src":"32700:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55330,"initialValue":{"hexValue":"30","id":55329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32712:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32700:13:91"},"loopExpression":{"expression":{"id":55335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32722:3:91","subExpression":{"id":55334,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55336,"nodeType":"ExpressionStatement","src":"32722:3:91"},"nodeType":"ForStatement","src":"32695:172:91"},{"body":{"id":55390,"nodeType":"Block","src":"32909:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55377,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32932:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55379,"indexExpression":{"id":55378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32943:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32932:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55374,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32923:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32926:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32923:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32923:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55381,"nodeType":"ExpressionStatement","src":"32923:23:91"},{"expression":{"arguments":[{"id":55385,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32992:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55386,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"33004:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55387,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"33016: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":55382,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"32960:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32975:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32960: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":55388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55389,"nodeType":"ExpressionStatement","src":"32960:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32897:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55369,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32901:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32897:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55391,"initializationExpression":{"assignments":[55365],"declarations":[{"constant":false,"id":55365,"mutability":"mutable","name":"i","nameLocation":"32890:1:91","nodeType":"VariableDeclaration","scope":55391,"src":"32882:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55364,"name":"uint256","nodeType":"ElementaryTypeName","src":"32882:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55367,"initialValue":{"hexValue":"30","id":55366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32882:13:91"},"loopExpression":{"expression":{"id":55372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32904:3:91","subExpression":{"id":55371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32904:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55373,"nodeType":"ExpressionStatement","src":"32904:3:91"},"nodeType":"ForStatement","src":"32877:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31946:13:91","parameters":{"id":55249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55245,"mutability":"mutable","name":"validators","nameLocation":"31977:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"31960:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55243,"name":"address","nodeType":"ElementaryTypeName","src":"31960:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55244,"nodeType":"ArrayTypeName","src":"31960:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55248,"mutability":"mutable","name":"privKeys","nameLocation":"32006:8:91","nodeType":"VariableDeclaration","scope":55393,"src":"31989:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55246,"name":"uint256","nodeType":"ElementaryTypeName","src":"31989:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55247,"nodeType":"ArrayTypeName","src":"31989:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31959:56:91"},"returnParameters":{"id":55250,"nodeType":"ParameterList","parameters":[],"src":"32025:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55428,"nodeType":"FunctionDefinition","src":"33050:305:91","nodes":[],"body":{"id":55427,"nodeType":"Block","src":"33097:258:91","nodes":[],"statements":[{"assignments":[55399],"declarations":[{"constant":false,"id":55399,"mutability":"mutable","name":"expectedNonce","nameLocation":"33115:13:91","nodeType":"VariableDeclaration","scope":55427,"src":"33107:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55398,"name":"uint256","nodeType":"ElementaryTypeName","src":"33107:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55405,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55400,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33131:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33140:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33131:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33131:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33158:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33131:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33107:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55413,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33231:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33235:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33231:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55411,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33209:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33226:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33209: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":55415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33209: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":55406,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33169:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33179:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33169:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55409,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55395,"src":"33194:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33169:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33169:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55417,"nodeType":"ExpressionStatement","src":"33169:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55419,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33261:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33270:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33261:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33261:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55422,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55399,"src":"33289:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33261:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33304: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":55418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33253:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33253:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55426,"nodeType":"ExpressionStatement","src":"33253:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33059:7:91","parameters":{"id":55396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55395,"mutability":"mutable","name":"releaseAmount","nameLocation":"33075:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33067:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55394,"name":"uint256","nodeType":"ElementaryTypeName","src":"33067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33066:23:91"},"returnParameters":{"id":55397,"nodeType":"ParameterList","parameters":[],"src":"33097:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55483,"nodeType":"FunctionDefinition","src":"33361:536:91","nodes":[],"body":{"id":55482,"nodeType":"Block","src":"33430:467:91","nodes":[],"statements":[{"assignments":[55436],"declarations":[{"constant":false,"id":55436,"mutability":"mutable","name":"balanceBefore","nameLocation":"33448:13:91","nodeType":"VariableDeclaration","scope":55482,"src":"33440:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55435,"name":"uint256","nodeType":"ElementaryTypeName","src":"33440:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55439,"initialValue":{"expression":{"id":55437,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33464:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33478:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33464:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33440:45:91"},{"assignments":[null,55441,null,null,null],"declarations":[null,{"constant":false,"id":55441,"mutability":"mutable","name":"stakedBefore","nameLocation":"33507:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33499:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55440,"name":"uint256","nodeType":"ElementaryTypeName","src":"33499:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55445,"initialValue":{"arguments":[{"id":55443,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33539:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55442,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33529: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":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33529: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":"33496:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55446,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33564:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33574:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33564:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55449,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33590:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33564:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33564:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"33564:40:91"},{"assignments":[55454],"declarations":[{"constant":false,"id":55454,"mutability":"mutable","name":"balanceAfter","nameLocation":"33623:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33615:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55453,"name":"uint256","nodeType":"ElementaryTypeName","src":"33615:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55457,"initialValue":{"expression":{"id":55455,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33638:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33652:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33638:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33615:44:91"},{"assignments":[null,55459,null,null,null],"declarations":[null,{"constant":false,"id":55459,"mutability":"mutable","name":"stakedAfter","nameLocation":"33680:11:91","nodeType":"VariableDeclaration","scope":55482,"src":"33672:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55458,"name":"uint256","nodeType":"ElementaryTypeName","src":"33672:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55463,"initialValue":{"arguments":[{"id":55461,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33711:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55460,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33701: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":55462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33701: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":"33669:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55465,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55454,"src":"33744:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55436,"src":"33760:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55467,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33776:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33760:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33744:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33789: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":55464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33736:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55472,"nodeType":"ExpressionStatement","src":"33736:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55474,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55459,"src":"33828:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"33843:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55476,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33858:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33843:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33828:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33871: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":55473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33820:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33820:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55481,"nodeType":"ExpressionStatement","src":"33820:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33370:8:91","parameters":{"id":55433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55430,"mutability":"mutable","name":"stakeAmount","nameLocation":"33387:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33379:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55429,"name":"uint256","nodeType":"ElementaryTypeName","src":"33379:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55432,"mutability":"mutable","name":"subnetAddress","nameLocation":"33408:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33400:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55431,"name":"address","nodeType":"ElementaryTypeName","src":"33400:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33378:44:91"},"returnParameters":{"id":55434,"nodeType":"ParameterList","parameters":[],"src":"33430:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55568,"nodeType":"FunctionDefinition","src":"33903:813:91","nodes":[],"body":{"id":55567,"nodeType":"Block","src":"33998:718:91","nodes":[],"statements":[{"assignments":[55495],"declarations":[{"constant":false,"id":55495,"mutability":"mutable","name":"manager","nameLocation":"34028:7:91","nodeType":"VariableDeclaration","scope":55567,"src":"34008:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55494,"nodeType":"UserDefinedTypeName","pathNode":{"id":55493,"name":"GatewayManagerFacet","nameLocations":["34008:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34008:19:91"},"referencedDeclaration":38870,"src":"34008:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55502,"initialValue":{"arguments":[{"arguments":[{"id":55499,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34066:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34058:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55497,"name":"address","nodeType":"ElementaryTypeName","src":"34058:7:91","typeDescriptions":{}}},"id":55500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34058:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55496,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34038:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34038:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34008:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34117: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":55503,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55495,"src":"34081:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34089:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34081:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55506,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34105:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34081:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55510,"nodeType":"ExpressionStatement","src":"34081:38:91"},{"assignments":[55513,55515,55517,null,55519],"declarations":[{"constant":false,"id":55513,"mutability":"mutable","name":"id","nameLocation":"34147:2:91","nodeType":"VariableDeclaration","scope":55567,"src":"34131:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55512,"nodeType":"UserDefinedTypeName","pathNode":{"id":55511,"name":"SubnetID","nameLocations":["34131:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34131:8:91"},"referencedDeclaration":50030,"src":"34131:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55515,"mutability":"mutable","name":"stake","nameLocation":"34159:5:91","nodeType":"VariableDeclaration","scope":55567,"src":"34151:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55514,"name":"uint256","nodeType":"ElementaryTypeName","src":"34151:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55517,"mutability":"mutable","name":"topDownNonce","nameLocation":"34174:12:91","nodeType":"VariableDeclaration","scope":55567,"src":"34166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55516,"name":"uint256","nodeType":"ElementaryTypeName","src":"34166:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55519,"mutability":"mutable","name":"circSupply","nameLocation":"34198:10:91","nodeType":"VariableDeclaration","scope":55567,"src":"34190:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55518,"name":"uint256","nodeType":"ElementaryTypeName","src":"34190:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55524,"initialValue":{"arguments":[{"id":55521,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34237:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55522,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34264: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":55520,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"34212: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":55523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34212: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":"34130:146:91"},{"assignments":[55527],"declarations":[{"constant":false,"id":55527,"mutability":"mutable","name":"parentNetwork","nameLocation":"34303:13:91","nodeType":"VariableDeclaration","scope":55567,"src":"34287:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55526,"nodeType":"UserDefinedTypeName","pathNode":{"id":55525,"name":"SubnetID","nameLocations":["34287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34287:8:91"},"referencedDeclaration":50030,"src":"34287:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55531,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55528,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"34319:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34328:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34319:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34319:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34287:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55533,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"34376:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34379:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34376: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":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34376:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55538,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34420:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55536,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"34391:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34405:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34391: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":55539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34435:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34391: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":55541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34376:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34457: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":55532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34355:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34355:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55545,"nodeType":"ExpressionStatement","src":"34355:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55547,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"34554:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55548,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34563:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34554:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34575: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":55546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34546:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34546:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55552,"nodeType":"ExpressionStatement","src":"34546:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55554,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55517,"src":"34612:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34628:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34612:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34631: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":55553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34604:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34604:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"34604:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55561,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55519,"src":"34668:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34682:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34668:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34685: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":55560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34660:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55566,"nodeType":"ExpressionStatement","src":"34660:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33912:16:91","parameters":{"id":55491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55485,"mutability":"mutable","name":"collateral","nameLocation":"33937:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"33929:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55484,"name":"uint256","nodeType":"ElementaryTypeName","src":"33929:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55487,"mutability":"mutable","name":"subnetAddress","nameLocation":"33957:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"33949:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55486,"name":"address","nodeType":"ElementaryTypeName","src":"33949:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55490,"mutability":"mutable","name":"gw","nameLocation":"33987:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"33972:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55489,"nodeType":"UserDefinedTypeName","pathNode":{"id":55488,"name":"GatewayDiamond","nameLocations":["33972:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"33972:14:91"},"referencedDeclaration":36170,"src":"33972:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33928:62:91"},"returnParameters":{"id":55492,"nodeType":"ParameterList","parameters":[],"src":"33998:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55582,"nodeType":"FunctionDefinition","src":"34722:150:91","nodes":[],"body":{"id":55581,"nodeType":"Block","src":"34796:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55576,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"34823:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55577,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"34835:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55578,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"34850: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":55575,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55568,"src":"34806:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34806:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55580,"nodeType":"ExpressionStatement","src":"34806:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34731:14:91","parameters":{"id":55573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55570,"mutability":"mutable","name":"collateral","nameLocation":"34754:10:91","nodeType":"VariableDeclaration","scope":55582,"src":"34746:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55569,"name":"uint256","nodeType":"ElementaryTypeName","src":"34746:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55572,"mutability":"mutable","name":"subnetAddress","nameLocation":"34774:13:91","nodeType":"VariableDeclaration","scope":55582,"src":"34766:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55571,"name":"address","nodeType":"ElementaryTypeName","src":"34766:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34745:43:91"},"returnParameters":{"id":55574,"nodeType":"ParameterList","parameters":[],"src":"34796:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55652,"nodeType":"FunctionDefinition","src":"34878:541:91","nodes":[],"body":{"id":55651,"nodeType":"Block","src":"35032:387:91","nodes":[],"statements":[{"expression":{"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55601,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"35042:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55605,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35082:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35074:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55603,"name":"address","nodeType":"ElementaryTypeName","src":"35074:7:91","typeDescriptions":{}}},"id":55606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35074:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55602,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35054:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35054:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35042:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55609,"nodeType":"ExpressionStatement","src":"35042:44:91"},{"expression":{"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55610,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35096:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55614,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35134:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35126:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55612,"name":"address","nodeType":"ElementaryTypeName","src":"35126:7:91","typeDescriptions":{}}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35126:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55611,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35107:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35107:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35096:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55618,"nodeType":"ExpressionStatement","src":"35096:42:91"},{"assignments":[55621],"declarations":[{"constant":false,"id":55621,"mutability":"mutable","name":"subnetId","nameLocation":"35165:8:91","nodeType":"VariableDeclaration","scope":55651,"src":"35149:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55620,"nodeType":"UserDefinedTypeName","pathNode":{"id":55619,"name":"SubnetID","nameLocations":["35149:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35149:8:91"},"referencedDeclaration":50030,"src":"35149:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55628,"initialValue":{"arguments":[{"id":55626,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55584,"src":"35217:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55622,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35176:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35185:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35176:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35202:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35176: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":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35149:82:91"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"subnet","nameLocation":"35256:6:91","nodeType":"VariableDeclaration","scope":55651,"src":"35242:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55630,"nodeType":"UserDefinedTypeName","pathNode":{"id":55629,"name":"Subnet","nameLocations":["35242:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35242:6:91"},"referencedDeclaration":50044,"src":"35242:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55638,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55634,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"35282:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35291:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35282: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":55636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35282:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55632,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35265:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35274:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35265: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":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35265:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35242:58:91"},{"expression":{"components":[{"expression":{"id":55639,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35319:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35326:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35319:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55641,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35330:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35337:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35330:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55643,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35344:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35351:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35344:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55645,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35365:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35372:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35365:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55647,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35394:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35401:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35394:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35318: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":55600,"id":55650,"nodeType":"Return","src":"35311:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34887:11:91","parameters":{"id":55588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55584,"mutability":"mutable","name":"subnetAddress","nameLocation":"34916:13:91","nodeType":"VariableDeclaration","scope":55652,"src":"34908:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55583,"name":"address","nodeType":"ElementaryTypeName","src":"34908:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55587,"mutability":"mutable","name":"gw","nameLocation":"34954:2:91","nodeType":"VariableDeclaration","scope":55652,"src":"34939:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55586,"nodeType":"UserDefinedTypeName","pathNode":{"id":55585,"name":"GatewayDiamond","nameLocations":["34939:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34939:14:91"},"referencedDeclaration":36170,"src":"34939:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34898:64:91"},"returnParameters":{"id":55600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34979:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55590,"nodeType":"UserDefinedTypeName","pathNode":{"id":55589,"name":"SubnetID","nameLocations":["34979:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34979:8:91"},"referencedDeclaration":50030,"src":"34979:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34996:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55592,"name":"uint256","nodeType":"ElementaryTypeName","src":"34996:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35005:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55594,"name":"uint256","nodeType":"ElementaryTypeName","src":"35005:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35014:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55596,"name":"uint256","nodeType":"ElementaryTypeName","src":"35014:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35023:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55598,"name":"uint256","nodeType":"ElementaryTypeName","src":"35023:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34978:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55674,"nodeType":"FunctionDefinition","src":"35425:177:91","nodes":[],"body":{"id":55673,"nodeType":"Block","src":"35536:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55669,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55654,"src":"35565:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55670,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"35580: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":55668,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"35553: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":55671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35553: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":55667,"id":55672,"nodeType":"Return","src":"35546:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35434:9:91","parameters":{"id":55655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55654,"mutability":"mutable","name":"subnetAddress","nameLocation":"35452:13:91","nodeType":"VariableDeclaration","scope":55674,"src":"35444:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55653,"name":"address","nodeType":"ElementaryTypeName","src":"35444:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35443:23:91"},"returnParameters":{"id":55667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35483:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55657,"nodeType":"UserDefinedTypeName","pathNode":{"id":55656,"name":"SubnetID","nameLocations":["35483:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35483:8:91"},"referencedDeclaration":50030,"src":"35483:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35500:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55659,"name":"uint256","nodeType":"ElementaryTypeName","src":"35500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35509:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55661,"name":"uint256","nodeType":"ElementaryTypeName","src":"35509:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35518:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55663,"name":"uint256","nodeType":"ElementaryTypeName","src":"35518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35527:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55665,"name":"uint256","nodeType":"ElementaryTypeName","src":"35527:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35482:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53053,"name":"Test","nameLocations":["8753:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8753:4:91"},"id":53054,"nodeType":"InheritanceSpecifier","src":"8753:4:91"},{"baseName":{"id":53055,"name":"TestParams","nameLocations":["8759:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"8759:10:91"},"id":53056,"nodeType":"InheritanceSpecifier","src":"8759:10:91"},{"baseName":{"id":53057,"name":"TestRegistry","nameLocations":["8771:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52759,"src":"8771:12:91"},"id":53058,"nodeType":"InheritanceSpecifier","src":"8771:12:91"},{"baseName":{"id":53059,"name":"TestSubnetActor","nameLocations":["8785:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53052,"src":"8785:15:91"},"id":53060,"nodeType":"InheritanceSpecifier","src":"8785:15:91"},{"baseName":{"id":53061,"name":"TestGatewayActor","nameLocations":["8802:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52888,"src":"8802:16:91"},"id":53062,"nodeType":"InheritanceSpecifier","src":"8802:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8730:19:91","scope":55676,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestBase.sol/TestRegistry.json b/contracts/.out/IntegrationTestBase.sol/TestRegistry.json new file mode 100644 index 000000000..50ca603ab --- /dev/null +++ b/contracts/.out/IntegrationTestBase.sol/TestRegistry.json @@ -0,0 +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$__5af49081156200049d5760009162000475575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601e5482601e55808310620003fc575b5060200190601e60005260206000208160031c9160005b838110620003ac5750600719811690038062000357575b604051610c8e9081620009138239f35b9260009360005b818110620003755750505001553880808062000347565b9091946020620003a1600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200035e565b6000805b60088110620003c757508382015560010162000330565b95906020620003f2600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620003b0565b601e6000526020600020600780850160031c8201920160031c0190601c8460021b168062000443575b505b81811062000436575062000319565b6000815560010162000427565b600019908183019182549160200360031b1c1690553862000425565b634e487b7160e01b600052604160045260246000fd5b6200049691503d806000833e6200048d818362000858565b8101906200087c565b38620002e5565b6040513d6000823e3d90fd5b9260009360005b8184038110620004cc5750505060031c0155388080806200027e565b9091946020620004f8600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620004b0565b6000805b600881106200051e57508382015560010162000264565b9490602062000549600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000507565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620005b7575b50600780850160031c8201920160031c01905b818110620005aa575062000251565b600081556001016200059b565b60001990816007870160031c8401019182549160200360031b1c1690553862000588565b620005f391503d806000833e6200048d818362000858565b386200021d565b9260009360005b8181106200061b5750505060031c015538808080620001b8565b909194602062000647600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000601565b6000805b600881106200066d5750838201556001016200019e565b9490602062000698600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000656565b601c6000526020600020601c8460021b1680620006e9575b50600780850160031c8201920160031c01905b818110620006dc57506200018b565b60008155600101620006cd565b60001990816007870160031c8401019182549160200360031b1c16905538620006ba565b6200072591503d806000833e6200048d818362000858565b3862000157565b9260009360005b8181106200074a57505050015538808080620000f0565b909194602062000776600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000733565b6000805b600881106200079c575083820155600101620000d9565b95906020620007c7600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000785565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000818575b505b8181106200080b5750620000c2565b60008155600101620007fc565b600019908183019182549160200360031b1c16905538620007fa565b6200084c91503d806000833e6200048d818362000858565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200045f57604052565b906020908183820312620008535782516001600160401b039384821162000853570181601f82011215620008535780519384116200045f578360051b9060405194620008cb8584018762000858565b8552838086019282010192831162000853578301905b828210620008f0575050505090565b81516001600160e01b03198116810362000853578152908301908301620008e156fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea26469706673582212202ae7d68d62ab02ba4a4d719c25ef4f2dd99d98c1c5d23d62774c0019f408c7a364736f6c63430008130033","sourceMap":"3871:824:91:-:0;;;;;;;1594:4:2;3871:824:91;;;;1594:4:2;3871:824:91;;;1594:4:2;3871:824:91;3201:4:5;3871:824:91;;;3201:4:5;3871:824:91;;;;4355:55;;3871:824;3201:4:5;4355:55:91;;3871:824;;;;;;;;;;;1594:4:2;4355:15:91;3871:824;4355:15;;:55;;;;;;;1594:4:2;4355:55:91;;;-1:-1:-1;;3871:824:91;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;4324:86;3871:824;;4324:86;3871:824;;;;;;-1:-1:-1;3871:824:91;;;;4324:86;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;1594:4:2;3871:824:91;;;;;;-1:-1:-1;;;3871:824:91;;;;;;;;;;;;;;;;;4457:53;;3871:824;3201:4:5;4457:53:91;;3871:824;;;;;;-1:-1:-1;;;3871:824:91;;;;1594:4:2;4355:15:91;3871:824;4355:15;;4457:53;;;;;;;1594:4:2;4457:53:91;;;3871:824;-1:-1:-1;3871:824:91;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;4420:90;3871:824;;4420:90;3871:824;;;;;;;;;;;4420:90;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;-1:-1:-1;;;3871:824:91;;;;;;;;;;;;;;;;;4546:51;;3871:824;3201:4:5;4546:51:91;;3871:824;;;;;;-1:-1:-1;;;3871:824:91;;;;1594:4:2;4355:15:91;3871:824;4355:15;;4546:51;;;;;;;1594:4:2;4546:51:91;;;3871:824;-1:-1:-1;3871:824:91;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;4520:77;3871:824;;4520:77;3871:824;;;;;;;;;;;4520:77;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;-1:-1:-1;;;3871:824:91;;;;;;;;;;;;;;;;;4633:53;;3871:824;3201:4:5;4633:53:91;;3871:824;;;;;;-1:-1:-1;;;3871:824:91;;;;1594:4:2;4355:15:91;3871:824;4355:15;;4633:53;;;;;;;1594:4:2;4633:53:91;;;3871:824;-1:-1:-1;3871:824:91;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;4607:79;3871:824;;4607:79;3871:824;;;;;;;;;;;4607:79;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;1594:4:2;3871:824:91;;;;;;-1:-1:-1;;;3871:824:91;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3871:824:91;;;;;;-1:-1:-1;3871:824:91;;;;1594:4:2;3871:824:91;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:79;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;4420:90;3871:824;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;3201:4:5;3871:824:91;;1594:4:2;3871:824:91;4633:53;;;;;;1594:4:2;4633:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3871:824;;;1594:4:2;3871:824:91;;;;;;;1594:4:2;3871:824:91;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3871:824:91;;;;;;-1:-1:-1;3871:824:91;;;;1594:4:2;3871:824:91;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4520:77;1594:4:2;3871:824:91;;;;;;4420:90;3871:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4546:51;;;;;;1594:4:2;4546:51:91;;;;;;:::i;:::-;;;;3871:824;;1594:4:2;3871:824:91;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3871:824:91;;;;;;-1:-1:-1;3871:824:91;;;;1594:4:2;3871:824:91;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4420:90;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;4420:90;3871:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:53;;;;;;1594:4:2;4457:53:91;;;;;;:::i;:::-;;;;3871:824;;1594:4:2;3871:824:91;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3871:824:91;;;;;;-1:-1:-1;3871:824:91;;;;1594:4:2;3871:824:91;;;;;;;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:86;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3871:824:91;;1594:4:2;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;4355:55;;;;;;1594:4:2;4355:55:91;;;;;;:::i;:::-;;;;3871:824;;;;;;;;;-1:-1:-1;;3871:824:91;;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3871: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":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea26469706673582212202ae7d68d62ab02ba4a4d719c25ef4f2dd99d98c1c5d23d62774c0019f408c7a364736f6c63430008130033","sourceMap":"3871:824:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;3871:824:91;;;;:::i;:::-;;1671:64:2;3871:824:91;;1671:64:2;;;:::i;:::-;3871:824:91;;;1982:18:8;3871:824:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3871:824:91;;;;;;;;-1:-1:-1;3871:824:91;;;;;-1:-1:-1;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3871:824:91;;;;;-1:-1:-1;3871:824:91;;;;;;;;;-1:-1:-1;3871:824:91;;;;-1:-1:-1;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;3871:824:91;;;;:::i;:::-;;1671:64:2;3871:824:91;;1671:64:2;;;:::i;:::-;3871:824:91;;;2899:18:8;3871:824:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3871:824:91;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;3871:824:91;;;;:::i;:::-;;1671:64:2;3871:824:91;;1671:64:2;;;:::i;:::-;3871:824:91;;;2416:18:8;3871:824:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3871:824:91;;;;;;;;-1:-1:-1;3871:824:91;;;;;-1:-1:-1;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3871:824:91;;;;;-1:-1:-1;3871:824:91;;;;;;;;;-1:-1:-1;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;3871:824:91;;;;:::i;:::-;;1671:64:2;3871:824:91;;1671:64:2;;;:::i;:::-;3871:824:91;;;2592:26:8;3871:824:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3871:824:91;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3871:824:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3871:824:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;3871:824:91;;;;;;;;;;;;;;;;;1671:64:2;3871:824:91;1671:64:2;;;;;;;;;;;3871:824:91;1671:64:2;:::o;:::-;3871:824:91;;;1671:64:2;;;;;;;;;;3871:824:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;3871:824:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;3871:824:91;;;2196:43:2;;;3871:824:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;3871:824:91;;-1:-1:-1;1671:64:2;;3871:824:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;3871:824:91;1671:64:2;2086:175;;;3871:824:91;;;;;;1671:64:2;3871:824:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;3871:824:91;;;1671:64:2;3871:824:91;;;-1:-1:-1;;3871:824:91;2196:43:2;1671:64;3871:824:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;3871:824:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;3871:824:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;3871:824:91;1671:64:2;;;3871:824:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;3871:824:91;1671:64:2;3871: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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"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":55676,"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":[55675],"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":[57060],"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":[58922],"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":[52888],"TestParams":[52695],"TestRegistry":[52759],"TestSubnetActor":[53052],"TestUtils":[57848],"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:35559: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":55676,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52531,"nodeType":"ImportDirective","src":"139:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52529,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"147:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52530,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"160:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52533,"nodeType":"ImportDirective","src":"212:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52532,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"220:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52535,"nodeType":"ImportDirective","src":"274:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"282:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52540,"nodeType":"ImportDirective","src":"331:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52536,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"339:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52537,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"349:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"369:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"382:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52542,"nodeType":"ImportDirective","src":"434:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52541,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"442:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"492:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52543,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"500:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"510:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"522:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"538:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"554:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"562:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"576:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"588:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"633:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52552,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"641:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"695:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"703:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"761:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52556,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"769:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"823:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52558,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"831:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"891:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52560,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"899:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"948:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"956:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1006:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52564,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1014:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1072:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52566,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1080:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1146:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52568,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1154:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1226:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52570,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1234:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1303:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52572,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1311:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1384:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52574,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1392:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1465:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52576,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1473:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1550:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52578,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1558:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1634:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":58923,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"1642:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1695:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52582,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1703:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"1778:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1786:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"1857:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52586,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1865:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"1952:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52588,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1960:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2033:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52590,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2041:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2115:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52592,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2123:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2187:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52594,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2195:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52597,"nodeType":"ImportDirective","src":"2270:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52596,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2278:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52599,"nodeType":"ImportDirective","src":"2350:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52598,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2358:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52601,"nodeType":"ImportDirective","src":"2422:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52600,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2430:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52603,"nodeType":"ImportDirective","src":"2490:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52602,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2498:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52605,"nodeType":"ImportDirective","src":"2560:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57849,"symbolAliases":[{"foreign":{"id":52604,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"2568:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52607,"nodeType":"ImportDirective","src":"2611:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57061,"symbolAliases":[{"foreign":{"id":52606,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"2619:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52695,"nodeType":"ContractDefinition","src":"2675:1194:91","nodes":[{"id":52614,"nodeType":"VariableDeclaration","src":"2701:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2717:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52608,"name":"uint64","nodeType":"ElementaryTypeName","src":"2701:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52610,"name":"uint64","nodeType":"ElementaryTypeName","src":"2734:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52609,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2742:3:91","memberName":"max","nodeType":"MemberAccess","src":"2729:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2751:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2768:20:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:91","typeDescriptions":{}}},"id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2848:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2864:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2848:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2889:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2896:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2913:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52624,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2956:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2971:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2956:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3001:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3009:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3025:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52630,"name":"uint64","nodeType":"ElementaryTypeName","src":"3009:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3053:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3066:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3082:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52633,"name":"uint64","nodeType":"ElementaryTypeName","src":"3066:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52638,"nodeType":"VariableDeclaration","src":"3118:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3134:16:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52636,"name":"string","nodeType":"ElementaryTypeName","src":"3118:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3153:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3168:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3183:7:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52639,"name":"bytes","nodeType":"ElementaryTypeName","src":"3168:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52640,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3193:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52644,"nodeType":"VariableDeclaration","src":"3210:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3227:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3264:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3281:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52645,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52653,"nodeType":"VariableDeclaration","src":"3319:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3336:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"3319:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368: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":52650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3360:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:91","typeDescriptions":{}}},"id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52659,"nodeType":"VariableDeclaration","src":"3377:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3394:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52654,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428: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":52656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3420:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:91","typeDescriptions":{}}},"id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3420:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3437:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3453:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52660,"name":"uint64","nodeType":"ElementaryTypeName","src":"3437:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52662,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3469:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3465:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52667,"nodeType":"VariableDeclaration","src":"3500:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3517:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3556:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3572:31:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52668,"name":"uint16","nodeType":"ElementaryTypeName","src":"3556:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3606:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52673,"nodeType":"VariableDeclaration","src":"3615:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3629:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52671,"name":"int8","nodeType":"ElementaryTypeName","src":"3615:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3651:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3659:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3675:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52674,"name":"uint64","nodeType":"ElementaryTypeName","src":"3659:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3702:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3719:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3745: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":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:91","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52688,"nodeType":"VariableDeclaration","src":"3753:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3770:24:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52683,"name":"address","nodeType":"ElementaryTypeName","src":"3753:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805: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":52685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3797:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:91","typeDescriptions":{}}},"id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3797:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52694,"nodeType":"VariableDeclaration","src":"3816:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3833:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52689,"name":"address","nodeType":"ElementaryTypeName","src":"3816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863: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":52691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:91","typeDescriptions":{}}},"id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52695],"name":"TestParams","nameLocation":"2684:10:91","scope":55676,"usedErrors":[]},{"id":52759,"nodeType":"ContractDefinition","src":"3871:824:91","nodes":[{"id":52702,"nodeType":"VariableDeclaration","src":"3919:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3928:28:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52700,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3919:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52701,"nodeType":"ArrayTypeName","src":"3919:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3962:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3971:34:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52703,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52704,"nodeType":"ArrayTypeName","src":"3962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"4011:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4020:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52706,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4011:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52707,"nodeType":"ArrayTypeName","src":"4011:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4049:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4058:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52709,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4049:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52710,"nodeType":"ArrayTypeName","src":"4049:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4088:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4110:15:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetRegistryDiamond","nameLocations":["4088:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4088:21:91"},"referencedDeclaration":36853,"src":"4088:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52717,"nodeType":"VariableDeclaration","src":"4131:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4149:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["4131:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4131:17:91"},"referencedDeclaration":37355,"src":"4131:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52720,"nodeType":"VariableDeclaration","src":"4169:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4185:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52719,"nodeType":"UserDefinedTypeName","pathNode":{"id":52718,"name":"DiamondCutFacet","nameLocations":["4169:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4169:15:91"},"referencedDeclaration":36918,"src":"4169:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52723,"nodeType":"VariableDeclaration","src":"4205:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4225:19:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52722,"nodeType":"UserDefinedTypeName","pathNode":{"id":52721,"name":"RegisterSubnetFacet","nameLocations":["4205:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4205:19:91"},"referencedDeclaration":52286,"src":"4205:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52726,"nodeType":"VariableDeclaration","src":"4250:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4268:25:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52725,"nodeType":"UserDefinedTypeName","pathNode":{"id":52724,"name":"SubnetGetterFacet","nameLocations":["4250:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4250:17:91"},"referencedDeclaration":52524,"src":"4250:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52758,"nodeType":"FunctionDefinition","src":"4300:393:91","nodes":[],"body":{"id":52757,"nodeType":"Block","src":"4314:379:91","nodes":[],"statements":[{"expression":{"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52729,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"4324:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4388: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":52730,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4355:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4355: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":52733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52735,"nodeType":"ExpressionStatement","src":"4324:86:91"},{"expression":{"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52736,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"4420:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4490: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":52737,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4457:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4457: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":52740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4457:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4420:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52742,"nodeType":"ExpressionStatement","src":"4420:90:91"},{"expression":{"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52743,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"4520:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4579: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":52744,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4546:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4562:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4546: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":52747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4520:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52749,"nodeType":"ExpressionStatement","src":"4520:77:91"},{"expression":{"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52750,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"4607:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4666: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":52751,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4633:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4649:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4633: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":52754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4607:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52756,"nodeType":"ExpressionStatement","src":"4607:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52727,"nodeType":"ParameterList","parameters":[],"src":"4311:2:91"},"returnParameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4314:0:91"},"scope":52759,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52696,"name":"Test","nameLocations":["3896:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3896:4:91"},"id":52697,"nodeType":"InheritanceSpecifier","src":"3896:4:91"},{"baseName":{"id":52698,"name":"TestParams","nameLocations":["3902:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"3902:10:91"},"id":52699,"nodeType":"InheritanceSpecifier","src":"3902:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3880:12:91","scope":55676,"usedErrors":[]},{"id":52888,"nodeType":"ContractDefinition","src":"4697:1625:91","nodes":[{"id":52766,"nodeType":"VariableDeclaration","src":"4749:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4758:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4749:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4749:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4793:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4802:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4793:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4793:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4837:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4846:31:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4837:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4837:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4883:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4892:30:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4883:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4883:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4929:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4938:18:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4929:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4929:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4962:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4971:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52780,"nodeType":"ArrayTypeName","src":"4962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4994:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5003:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4994:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52783,"nodeType":"ArrayTypeName","src":"4994:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"5030:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5039:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52785,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5030:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52786,"nodeType":"ArrayTypeName","src":"5030:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5062:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5071:16:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52788,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5062:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52789,"nodeType":"ArrayTypeName","src":"5062:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5094:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5109:14:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"GatewayDiamond","nameLocations":["5094:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5094:14:91"},"referencedDeclaration":36170,"src":"5094:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5129:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5149:9:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"GatewayManagerFacet","nameLocations":["5129:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5129:19:91"},"referencedDeclaration":38870,"src":"5129:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5164:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5183:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"GatewayGetterFacet","nameLocations":["5164:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5164:18:91"},"referencedDeclaration":38317,"src":"5164:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5197:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5216:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"CheckpointingFacet","nameLocations":["5197:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5197:18:91"},"referencedDeclaration":39870,"src":"5197:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5261:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"XnetMessagingFacet","nameLocations":["5242:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5242:18:91"},"referencedDeclaration":40144,"src":"5242:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5308:22:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"TopDownFinalityFacet","nameLocations":["5287:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5287:20:91"},"referencedDeclaration":40071,"src":"5287:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52811,"nodeType":"VariableDeclaration","src":"5336:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5356:21:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52810,"nodeType":"UserDefinedTypeName","pathNode":{"id":52809,"name":"BottomUpRouterFacet","nameLocations":["5336:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5336:19:91"},"referencedDeclaration":39601,"src":"5336:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52814,"nodeType":"VariableDeclaration","src":"5383:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5405:11:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52813,"nodeType":"UserDefinedTypeName","pathNode":{"id":52812,"name":"GatewayMessengerFacet","nameLocations":["5383:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5383:21:91"},"referencedDeclaration":39235,"src":"5383:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52817,"nodeType":"VariableDeclaration","src":"5422:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5438:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52816,"nodeType":"UserDefinedTypeName","pathNode":{"id":52815,"name":"DiamondCutFacet","nameLocations":["5422:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5422:15:91"},"referencedDeclaration":36918,"src":"5422:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52820,"nodeType":"VariableDeclaration","src":"5452:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5470:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52819,"nodeType":"UserDefinedTypeName","pathNode":{"id":52818,"name":"DiamondLoupeFacet","nameLocations":["5452:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5452:17:91"},"referencedDeclaration":37355,"src":"5452:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52887,"nodeType":"FunctionDefinition","src":"5485:835:91","nodes":[],"body":{"id":52886,"nodeType":"Block","src":"5499:821:91","nodes":[],"statements":[{"expression":{"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52823,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5509:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5574: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":52824,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5541:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5557:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5541: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":52827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5509:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52829,"nodeType":"ExpressionStatement","src":"5509:86:91"},{"expression":{"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5605:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5670: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":52831,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5637:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5653:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5637: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":52834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52836,"nodeType":"ExpressionStatement","src":"5605:86:91"},{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52837,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5701:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768: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":52838,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5735:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5751:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5735: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":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5701:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52843,"nodeType":"ExpressionStatement","src":"5701:90:91"},{"expression":{"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52844,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5801:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5867: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":52845,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5834:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5834: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":52848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5834:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5801:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52850,"nodeType":"ExpressionStatement","src":"5801:88:91"},{"expression":{"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52851,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"5900:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5953: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":52852,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5920:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5936:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5920: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":52855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5920:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5900:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52857,"nodeType":"ExpressionStatement","src":"5900:74:91"},{"expression":{"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52858,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"5984:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6038: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":52859,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6005:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6005: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":52862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5984:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52864,"nodeType":"ExpressionStatement","src":"5984:76:91"},{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52865,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"6070:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6126: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":52866,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6093:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6109:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6093: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":52869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6070:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52871,"nodeType":"ExpressionStatement","src":"6070:80:91"},{"expression":{"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52872,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"6160:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6213: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":52873,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6180:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6196:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6180: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":52876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6160:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52878,"nodeType":"ExpressionStatement","src":"6160:71:91"},{"expression":{"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52879,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"6241:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6293: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":52880,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6260:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6276:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6260: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":52883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6241:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52885,"nodeType":"ExpressionStatement","src":"6241:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52821,"nodeType":"ParameterList","parameters":[],"src":"5496:2:91"},"returnParameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5499:0:91"},"scope":52888,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52760,"name":"Test","nameLocations":["4726:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4726:4:91"},"id":52761,"nodeType":"InheritanceSpecifier","src":"4726:4:91"},{"baseName":{"id":52762,"name":"TestParams","nameLocations":["4732:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"4732:10:91"},"id":52763,"nodeType":"InheritanceSpecifier","src":"4732:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52888,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4706:16:91","scope":55676,"usedErrors":[]},{"id":53052,"nodeType":"ContractDefinition","src":"6324:2395:91","nodes":[{"id":52895,"nodeType":"VariableDeclaration","src":"6375:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6384:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52893,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6375:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52894,"nodeType":"ArrayTypeName","src":"6375:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52898,"nodeType":"VariableDeclaration","src":"6407:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6416:18:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52896,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6407:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52897,"nodeType":"ArrayTypeName","src":"6407:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52901,"nodeType":"VariableDeclaration","src":"6440:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"6449:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52899,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6440:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52900,"nodeType":"ArrayTypeName","src":"6440:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52904,"nodeType":"VariableDeclaration","src":"6472:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"6481:19:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6472:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52903,"nodeType":"ArrayTypeName","src":"6472:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52907,"nodeType":"VariableDeclaration","src":"6506:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"6515:23:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52905,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6506:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52906,"nodeType":"ArrayTypeName","src":"6506:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52910,"nodeType":"VariableDeclaration","src":"6544:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6553:24:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52908,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6544:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52909,"nodeType":"ArrayTypeName","src":"6544:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52913,"nodeType":"VariableDeclaration","src":"6583:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6592:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52911,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6583:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52912,"nodeType":"ArrayTypeName","src":"6583:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52916,"nodeType":"VariableDeclaration","src":"6615:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6624:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52914,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6615:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52915,"nodeType":"ArrayTypeName","src":"6615:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52919,"nodeType":"VariableDeclaration","src":"6648:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6667:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52918,"nodeType":"UserDefinedTypeName","pathNode":{"id":52917,"name":"SubnetActorDiamond","nameLocations":["6648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6648:18:91"},"referencedDeclaration":36615,"src":"6648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6682:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6706:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52921,"nodeType":"UserDefinedTypeName","pathNode":{"id":52920,"name":"SubnetActorManagerFacet","nameLocations":["6682:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"6682:23:91"},"referencedDeclaration":51946,"src":"6682:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6721:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"6737:6:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":52924,"nodeType":"UserDefinedTypeName","pathNode":{"id":52923,"name":"SubnetActorMock","nameLocations":["6721:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"6721:15:91"},"referencedDeclaration":58922,"src":"6721:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6749:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6772:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52927,"nodeType":"UserDefinedTypeName","pathNode":{"id":52926,"name":"SubnetActorGetterFacet","nameLocations":["6749:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"6749:22:91"},"referencedDeclaration":51235,"src":"6749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6786:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"6809:10:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52930,"nodeType":"UserDefinedTypeName","pathNode":{"id":52929,"name":"SubnetActorRewardFacet","nameLocations":["6786:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"6786:22:91"},"referencedDeclaration":52158,"src":"6786:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6825:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"6847:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorPauseFacet","nameLocations":["6825:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"6825:21:91"},"referencedDeclaration":51991,"src":"6825:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6861:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"6891:14:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorCheckpointingFacet","nameLocations":["6861:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"6861:29:91"},"referencedDeclaration":50577,"src":"6861:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"6912:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6928:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"DiamondCutFacet","nameLocations":["6912:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"6912:15:91"},"referencedDeclaration":36918,"src":"6912:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"6942:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6960:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"DiamondLoupeFacet","nameLocations":["6942:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"6942:17:91"},"referencedDeclaration":37355,"src":"6942:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53003,"nodeType":"FunctionDefinition","src":"6975:729:91","nodes":[],"body":{"id":53002,"nodeType":"Block","src":"6989:715:91","nodes":[],"statements":[{"expression":{"id":52951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52946,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"6999:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7052: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":52947,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7019:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7035:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7019: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":52950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6999:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52952,"nodeType":"ExpressionStatement","src":"6999:78:91"},{"expression":{"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52953,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"7087:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7141: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":52954,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7108:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7124:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7108: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":52957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7108:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7087:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52959,"nodeType":"ExpressionStatement","src":"7087:80:91"},{"expression":{"id":52965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52960,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"7177:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":52963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7230: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":52961,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7197:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7213:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7197: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":52964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7177:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52966,"nodeType":"ExpressionStatement","src":"7177:77:91"},{"expression":{"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52967,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"7264:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":52970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7319: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":52968,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7286:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7302:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7286: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":52971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7264:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52973,"nodeType":"ExpressionStatement","src":"7264:80:91"},{"expression":{"id":52979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52974,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"7354:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":52977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7413: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":52975,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7380:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7380: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":52978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7380:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7354:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52980,"nodeType":"ExpressionStatement","src":"7354:91:91"},{"expression":{"id":52986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52981,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"7455:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":52984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7515: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":52982,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7482:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7498:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7482: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":52985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7455:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52987,"nodeType":"ExpressionStatement","src":"7455:78:91"},{"expression":{"id":52993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52988,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"7543:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7596: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":52989,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7563:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7579:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7563: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":52992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7563:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7543:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52994,"nodeType":"ExpressionStatement","src":"7543:71:91"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52995,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"7624:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7677: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":52996,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7644:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7660:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7644: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":52999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7644:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7624:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53001,"nodeType":"ExpressionStatement","src":"7624:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52944,"nodeType":"ParameterList","parameters":[],"src":"6986:2:91"},"returnParameters":{"id":52945,"nodeType":"ParameterList","parameters":[],"src":"6989:0:91"},"scope":53052,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53051,"nodeType":"FunctionDefinition","src":"7710:1007:91","nodes":[],"body":{"id":53050,"nodeType":"Block","src":"7857:860:91","nodes":[],"statements":[{"assignments":[53013],"declarations":[{"constant":false,"id":53013,"mutability":"mutable","name":"native","nameLocation":"7887:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7867:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53012,"nodeType":"UserDefinedTypeName","pathNode":{"id":53011,"name":"SupplySource","nameLocations":["7867:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"7867:12:91"},"referencedDeclaration":50179,"src":"7867:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53017,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53014,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"7896:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7915:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"7896:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7896:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:56:91"},{"assignments":[53022],"declarations":[{"constant":false,"id":53022,"mutability":"mutable","name":"params","nameLocation":"7977:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7933:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53021,"nodeType":"UserDefinedTypeName","pathNode":{"id":53020,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7933:18:91","7952:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7933:36:91"},"referencedDeclaration":36253,"src":"7933:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53047,"initialValue":{"arguments":[{"arguments":[{"id":53026,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"8063:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8101: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":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8087: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":53027,"name":"address","nodeType":"ElementaryTypeName","src":"8091:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53028,"nodeType":"ArrayTypeName","src":"8091:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087: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":53025,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8047:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8057:4:91","8080:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8047:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53033,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53005,"src":"8135:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53034,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8162:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8176:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8162:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53036,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8225:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53037,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8279:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53038,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"8336:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"8395:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53040,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"8459:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53041,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52673,"src":"8516:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53042,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"8565:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53043,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"8616:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8631:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"8616:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53045,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53013,"src":"8669: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":53023,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7986:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8005:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7986:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8037:8:91","8119:14:91","8151:9:91","8200:23:91","8264:13:91","8315:19:91","8375:18:91","8436:21:91","8504:10:91","8549:14:91","8600:14:91","8655:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7986:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7933:753:91"},{"expression":{"id":53048,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53022,"src":"8704:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53010,"id":53049,"nodeType":"Return","src":"8697:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7719:35:91","parameters":{"id":53006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53005,"mutability":"mutable","name":"gw","nameLocation":"7772:2:91","nodeType":"VariableDeclaration","scope":53051,"src":"7764:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53004,"name":"address","nodeType":"ElementaryTypeName","src":"7764:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7754:26:91"},"returnParameters":{"id":53010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53051,"src":"7812:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53008,"nodeType":"UserDefinedTypeName","pathNode":{"id":53007,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7812:18:91","7831:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7812:36:91"},"referencedDeclaration":36253,"src":"7812:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7811:45:91"},"scope":53052,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52889,"name":"Test","nameLocations":["6352:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6352:4:91"},"id":52890,"nodeType":"InheritanceSpecifier","src":"6352:4:91"},{"baseName":{"id":52891,"name":"TestParams","nameLocations":["6358:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"6358:10:91"},"id":52892,"nodeType":"InheritanceSpecifier","src":"6358:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53052,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6333:15:91","scope":55676,"usedErrors":[]},{"id":55675,"nodeType":"ContractDefinition","src":"8721:26883:91","nodes":[{"id":53066,"nodeType":"UsingForDirective","src":"8825:34:91","nodes":[],"global":false,"libraryName":{"id":53063,"name":"SubnetIDHelper","nameLocations":["8831:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"8831:14:91"},"typeName":{"id":53065,"nodeType":"UserDefinedTypeName","pathNode":{"id":53064,"name":"SubnetID","nameLocations":["8850:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"8850:8:91"},"referencedDeclaration":50030,"src":"8850:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53070,"nodeType":"UsingForDirective","src":"8864:42:91","nodes":[],"global":false,"libraryName":{"id":53067,"name":"SupplySourceHelper","nameLocations":["8870:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"8870:18:91"},"typeName":{"id":53069,"nodeType":"UserDefinedTypeName","pathNode":{"id":53068,"name":"SupplySource","nameLocations":["8893:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8893:12:91"},"referencedDeclaration":50179,"src":"8893:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53074,"nodeType":"UsingForDirective","src":"8911:34:91","nodes":[],"global":false,"libraryName":{"id":53071,"name":"CrossMsgHelper","nameLocations":["8917:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"8917:14:91"},"typeName":{"id":53073,"nodeType":"UserDefinedTypeName","pathNode":{"id":53072,"name":"CrossMsg","nameLocations":["8936:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"8936:8:91"},"referencedDeclaration":49927,"src":"8936:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53078,"nodeType":"UsingForDirective","src":"8950:40:91","nodes":[],"global":false,"libraryName":{"id":53075,"name":"StorableMsgHelper","nameLocations":["8956:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"8956:17:91"},"typeName":{"id":53077,"nodeType":"UserDefinedTypeName","pathNode":{"id":53076,"name":"StorableMsg","nameLocations":["8978:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"8978:11:91"},"referencedDeclaration":49944,"src":"8978:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53082,"nodeType":"UsingForDirective","src":"8995:38:91","nodes":[],"global":false,"libraryName":{"id":53079,"name":"FvmAddressHelper","nameLocations":["9001:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9001:16:91"},"typeName":{"id":53081,"nodeType":"UserDefinedTypeName","pathNode":{"id":53080,"name":"FvmAddress","nameLocations":["9022:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9022:10:91"},"referencedDeclaration":49951,"src":"9022:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53086,"nodeType":"EventDefinition","src":"9039:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9045:21:91","parameters":{"id":53085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53084,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9083:21:91","nodeType":"VariableDeclaration","scope":53086,"src":"9067:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9066:39:91"}},{"id":53090,"nodeType":"FunctionDefinition","src":"9112:16:91","nodes":[],"body":{"id":53089,"nodeType":"Block","src":"9126:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53087,"nodeType":"ParameterList","parameters":[],"src":"9123:2:91"},"returnParameters":{"id":53088,"nodeType":"ParameterList","parameters":[],"src":"9126:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53292,"nodeType":"FunctionDefinition","src":"9134:1732:91","nodes":[],"body":{"id":53291,"nodeType":"Block","src":"9166:1700:91","nodes":[],"statements":[{"assignments":[53097],"declarations":[{"constant":false,"id":53097,"mutability":"mutable","name":"path","nameLocation":"9193:4:91","nodeType":"VariableDeclaration","scope":53291,"src":"9176:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53095,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53096,"nodeType":"ArrayTypeName","src":"9176:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53103,"initialValue":{"arguments":[{"hexValue":"31","id":53101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9214: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":53100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9200: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":53098,"name":"address","nodeType":"ElementaryTypeName","src":"9204:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53099,"nodeType":"ArrayTypeName","src":"9204:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9176:40:91"},{"expression":{"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53104,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53097,"src":"9226:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53106,"indexExpression":{"hexValue":"30","id":53105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231: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":"9226:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53107,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"9236:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9226:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53109,"nodeType":"ExpressionStatement","src":"9226:25:91"},{"assignments":[53114],"declarations":[{"constant":false,"id":53114,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9344:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"9304:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53113,"nodeType":"UserDefinedTypeName","pathNode":{"id":53112,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9304:14:91","9319:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9304:32:91"},"referencedDeclaration":35883,"src":"9304:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53117,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53115,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53328,"src":"9366:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9366:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9304:84:91"},{"expression":{"id":53122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9398:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53120,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53114,"src":"9436: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":53119,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"9415: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":53121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9415:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9398:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53123,"nodeType":"ExpressionStatement","src":"9398:58:91"},{"expression":{"id":53131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53124,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9467:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53128,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9505:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9497:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53126,"name":"address","nodeType":"ElementaryTypeName","src":"9497:7:91","typeDescriptions":{}}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53125,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9478:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9467:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53132,"nodeType":"ExpressionStatement","src":"9467:54:91"},{"expression":{"id":53140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53133,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9531:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53137,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9571:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9563:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9563:7:91","typeDescriptions":{}}},"id":53138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9563:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53134,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9543:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9531:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53141,"nodeType":"ExpressionStatement","src":"9531:56:91"},{"expression":{"id":53149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53142,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9597:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9647:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9639:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53144,"name":"address","nodeType":"ElementaryTypeName","src":"9639:7:91","typeDescriptions":{}}},"id":53147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9639:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53143,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9620:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9597:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53150,"nodeType":"ExpressionStatement","src":"9597:66:91"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53151,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9673:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9723:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9715:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53153,"name":"address","nodeType":"ElementaryTypeName","src":"9715:7:91","typeDescriptions":{}}},"id":53156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53152,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9696:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9673:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53159,"nodeType":"ExpressionStatement","src":"9673:66:91"},{"expression":{"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53160,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53164,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9803:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9795:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53162,"name":"address","nodeType":"ElementaryTypeName","src":"9795:7:91","typeDescriptions":{}}},"id":53165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53161,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9774:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9749:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53168,"nodeType":"ExpressionStatement","src":"9749:70:91"},{"expression":{"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53169,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52811,"src":"9829:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53173,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9881:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9873:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53171,"name":"address","nodeType":"ElementaryTypeName","src":"9873:7:91","typeDescriptions":{}}},"id":53174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53170,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9853:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9853:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9829:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53177,"nodeType":"ExpressionStatement","src":"9829:68:91"},{"expression":{"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53178,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"9907:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53182,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9951:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9943:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53180,"name":"address","nodeType":"ElementaryTypeName","src":"9943:7:91","typeDescriptions":{}}},"id":53183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9943:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53179,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9921:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9921:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9907:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53186,"nodeType":"ExpressionStatement","src":"9907:60:91"},{"expression":{"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53187,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"9977:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53191,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10014:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10006:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53189,"name":"address","nodeType":"ElementaryTypeName","src":"10006:7:91","typeDescriptions":{}}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10006:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53188,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9988:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9988:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9977:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53195,"nodeType":"ExpressionStatement","src":"9977:53:91"},{"expression":{"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53196,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"10040:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53200,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10075:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53198,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:91","typeDescriptions":{}}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10067:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53197,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10051:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10051:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10040:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53204,"nodeType":"ExpressionStatement","src":"10040:51:91"},{"assignments":[53209],"declarations":[{"constant":false,"id":53209,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10200:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"10156:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53208,"nodeType":"UserDefinedTypeName","pathNode":{"id":53207,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10156:18:91","10175:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10156:36:91"},"referencedDeclaration":36253,"src":"10156:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53216,"initialValue":{"arguments":[{"arguments":[{"id":53213,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10271:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53211,"name":"address","nodeType":"ElementaryTypeName","src":"10271:7:91","typeDescriptions":{}}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10271:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53210,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"10222: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":53215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10222:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10156:148:91"},{"expression":{"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10315:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53219,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53209,"src":"10345: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":53218,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":53911,"src":"10327: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":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10315:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53222,"nodeType":"ExpressionStatement","src":"10315:50:91"},{"expression":{"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53223,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"10375:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53227,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10419:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10411:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53225,"name":"address","nodeType":"ElementaryTypeName","src":"10411:7:91","typeDescriptions":{}}},"id":53228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10411:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53224,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"10387:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10387:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"10375:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53231,"nodeType":"ExpressionStatement","src":"10375:55:91"},{"expression":{"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53232,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"10440:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53236,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10482:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53234,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:91","typeDescriptions":{}}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53233,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"10451:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10451:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"10440:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53240,"nodeType":"ExpressionStatement","src":"10440:53:91"},{"expression":{"id":53248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53241,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10503:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53245,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10544:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10536:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"10536:7:91","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10536:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"10514:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10514:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"10503:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53249,"nodeType":"ExpressionStatement","src":"10503:52:91"},{"expression":{"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"10565:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10609:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10601:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53252,"name":"address","nodeType":"ElementaryTypeName","src":"10601:7:91","typeDescriptions":{}}},"id":53255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10601:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53251,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"10578:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10578:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"10565:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53258,"nodeType":"ExpressionStatement","src":"10565:55:91"},{"expression":{"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53259,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10630:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53263,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10685:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53261,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:91","typeDescriptions":{}}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53260,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"10647:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"10630:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53267,"nodeType":"ExpressionStatement","src":"10630:66:91"},{"expression":{"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53268,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10706:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53272,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10743:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10735:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53270,"name":"address","nodeType":"ElementaryTypeName","src":"10735:7:91","typeDescriptions":{}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53269,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10717:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10717:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10706:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53276,"nodeType":"ExpressionStatement","src":"10706:48:91"},{"expression":{"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53277,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"10764:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53281,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10799:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53279,"name":"address","nodeType":"ElementaryTypeName","src":"10791:7:91","typeDescriptions":{}}},"id":53282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53278,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10775:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10764:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53285,"nodeType":"ExpressionStatement","src":"10764:46:91"},{"expression":{"arguments":[{"id":53287,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52694,"src":"10834:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855: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":53286,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"10821:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"10821:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9143:5:91","parameters":{"id":53091,"nodeType":"ParameterList","parameters":[],"src":"9148:2:91"},"returnParameters":{"id":53092,"nodeType":"ParameterList","parameters":[],"src":"9166:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53328,"nodeType":"FunctionDefinition","src":"10872:606:91","nodes":[],"body":{"id":53327,"nodeType":"Block","src":"10976:502:91","nodes":[],"statements":[{"assignments":[53302],"declarations":[{"constant":false,"id":53302,"mutability":"mutable","name":"params","nameLocation":"11026:6:91","nodeType":"VariableDeclaration","scope":53327,"src":"10986:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53301,"nodeType":"UserDefinedTypeName","pathNode":{"id":53300,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10986:14:91","11001:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10986:32:91"},"referencedDeclaration":35883,"src":"10986:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53324,"initialValue":{"arguments":[{"arguments":[{"id":53306,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"11111:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11149: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":53309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11135: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":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11139:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53308,"nodeType":"ArrayTypeName","src":"11139:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11135: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":53305,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"11095:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11105:4:91","11128:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"11095:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53313,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"11188:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53314,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"11235:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53315,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"11290:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":53320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11366: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":53319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11350: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":53317,"nodeType":"UserDefinedTypeName","pathNode":{"id":53316,"name":"Validator","nameLocations":["11354:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"11354:9:91"},"referencedDeclaration":50164,"src":"11354:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":53318,"nodeType":"ArrayTypeName","src":"11354:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11350:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":53322,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"11405: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":53303,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"11035:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11050:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"11035:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11082:11:91","11167:19:91","11227:6:91","11270:18:91","11331:17:91","11382:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"11035:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10986:461:91"},{"expression":{"id":53325,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53302,"src":"11465:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":53297,"id":53326,"nodeType":"Return","src":"11458:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"10881:20:91","parameters":{"id":53293,"nodeType":"ParameterList","parameters":[],"src":"10901:2:91"},"returnParameters":{"id":53297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53328,"src":"10935:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10935:14:91","10950:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10935:32:91"},"referencedDeclaration":35883,"src":"10935:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10934:41:91"},"scope":55675,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":53587,"nodeType":"FunctionDefinition","src":"11484:3185:91","nodes":[],"body":{"id":53586,"nodeType":"Block","src":"11594:3075:91","nodes":[],"statements":[{"assignments":[53339],"declarations":[{"constant":false,"id":53339,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11623:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11604:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"CheckpointingFacet","nameLocations":["11604:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11604:18:91"},"referencedDeclaration":39870,"src":"11604:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53344,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53341,"nodeType":"UserDefinedTypeName","pathNode":{"id":53340,"name":"CheckpointingFacet","nameLocations":["11648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11648:18:91"},"referencedDeclaration":39870,"src":"11648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11604:64:91"},{"assignments":[53347],"declarations":[{"constant":false,"id":53347,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11697:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11678:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53346,"nodeType":"UserDefinedTypeName","pathNode":{"id":53345,"name":"XnetMessagingFacet","nameLocations":["11678:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11678:18:91"},"referencedDeclaration":40144,"src":"11678:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11718:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53349,"nodeType":"UserDefinedTypeName","pathNode":{"id":53348,"name":"XnetMessagingFacet","nameLocations":["11722:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11722:18:91"},"referencedDeclaration":40144,"src":"11722:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11718:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11678:64:91"},{"assignments":[53355],"declarations":[{"constant":false,"id":53355,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11773:20:91","nodeType":"VariableDeclaration","scope":53586,"src":"11752:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53354,"nodeType":"UserDefinedTypeName","pathNode":{"id":53353,"name":"TopDownFinalityFacet","nameLocations":["11752:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11752:20:91"},"referencedDeclaration":40071,"src":"11752:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53360,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11796:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53357,"nodeType":"UserDefinedTypeName","pathNode":{"id":53356,"name":"TopDownFinalityFacet","nameLocations":["11800:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11800:20:91"},"referencedDeclaration":40071,"src":"11800:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11796:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11752:70:91"},{"assignments":[53363],"declarations":[{"constant":false,"id":53363,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11852:19:91","nodeType":"VariableDeclaration","scope":53586,"src":"11832:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53362,"nodeType":"UserDefinedTypeName","pathNode":{"id":53361,"name":"BottomUpRouterFacet","nameLocations":["11832:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11832:19:91"},"referencedDeclaration":39601,"src":"11832:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53368,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11874:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53365,"nodeType":"UserDefinedTypeName","pathNode":{"id":53364,"name":"BottomUpRouterFacet","nameLocations":["11878:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11878:19:91"},"referencedDeclaration":39601,"src":"11878:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11874:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11832:67:91"},{"assignments":[53371],"declarations":[{"constant":false,"id":53371,"mutability":"mutable","name":"manager","nameLocation":"11930:7:91","nodeType":"VariableDeclaration","scope":53586,"src":"11910:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53370,"nodeType":"UserDefinedTypeName","pathNode":{"id":53369,"name":"GatewayManagerFacet","nameLocations":["11910:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11910:19:91"},"referencedDeclaration":38870,"src":"11910:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11940:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53373,"nodeType":"UserDefinedTypeName","pathNode":{"id":53372,"name":"GatewayManagerFacet","nameLocations":["11944:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11944:19:91"},"referencedDeclaration":38870,"src":"11944:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11940:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11910:55:91"},{"assignments":[53379],"declarations":[{"constant":false,"id":53379,"mutability":"mutable","name":"getter","nameLocation":"11994:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"11975:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53378,"nodeType":"UserDefinedTypeName","pathNode":{"id":53377,"name":"GatewayGetterFacet","nameLocations":["11975:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11975:18:91"},"referencedDeclaration":38317,"src":"11975:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12003:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53381,"nodeType":"UserDefinedTypeName","pathNode":{"id":53380,"name":"GatewayGetterFacet","nameLocations":["12007:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12007:18:91"},"referencedDeclaration":38317,"src":"12007:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11975:52:91"},{"assignments":[53387],"declarations":[{"constant":false,"id":53387,"mutability":"mutable","name":"messenger","nameLocation":"12059:9:91","nodeType":"VariableDeclaration","scope":53586,"src":"12037:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53386,"nodeType":"UserDefinedTypeName","pathNode":{"id":53385,"name":"GatewayMessengerFacet","nameLocations":["12037:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12037:21:91"},"referencedDeclaration":39235,"src":"12037:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12071:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53389,"nodeType":"UserDefinedTypeName","pathNode":{"id":53388,"name":"GatewayMessengerFacet","nameLocations":["12075:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12075:21:91"},"referencedDeclaration":39235,"src":"12075:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12071:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12037:61:91"},{"assignments":[53395],"declarations":[{"constant":false,"id":53395,"mutability":"mutable","name":"cutter","nameLocation":"12124:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12108:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53394,"nodeType":"UserDefinedTypeName","pathNode":{"id":53393,"name":"DiamondCutFacet","nameLocations":["12108:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12108:15:91"},"referencedDeclaration":36918,"src":"12108:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53400,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12133:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53397,"nodeType":"UserDefinedTypeName","pathNode":{"id":53396,"name":"DiamondCutFacet","nameLocations":["12137:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12137:15:91"},"referencedDeclaration":36918,"src":"12137:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12133:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12108:46:91"},{"assignments":[53403],"declarations":[{"constant":false,"id":53403,"mutability":"mutable","name":"louper","nameLocation":"12182:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12164:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53402,"nodeType":"UserDefinedTypeName","pathNode":{"id":53401,"name":"DiamondLoupeFacet","nameLocations":["12164:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12164:17:91"},"referencedDeclaration":37355,"src":"12164:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53408,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12191:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53405,"nodeType":"UserDefinedTypeName","pathNode":{"id":53404,"name":"DiamondLoupeFacet","nameLocations":["12195:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12195:17:91"},"referencedDeclaration":37355,"src":"12195:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12191:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12164:50:91"},{"assignments":[53414],"declarations":[{"constant":false,"id":53414,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12252:12:91","nodeType":"VariableDeclaration","scope":53586,"src":"12225: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":53412,"nodeType":"UserDefinedTypeName","pathNode":{"id":53411,"name":"IDiamond.FacetCut","nameLocations":["12225:8:91","12234:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12225:17:91"},"referencedDeclaration":40159,"src":"12225:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53413,"nodeType":"ArrayTypeName","src":"12225:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53421,"initialValue":{"arguments":[{"hexValue":"39","id":53419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12291: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":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12267: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":53416,"nodeType":"UserDefinedTypeName","pathNode":{"id":53415,"name":"IDiamond.FacetCut","nameLocations":["12271:8:91","12280:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12271:17:91"},"referencedDeclaration":40159,"src":"12271:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53417,"nodeType":"ArrayTypeName","src":"12271:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267: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":"12225:68:91"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53422,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12304:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53424,"indexExpression":{"hexValue":"30","id":53423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317: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":"12304:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53429,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53339,"src":"12394:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12386:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53427,"name":"address","nodeType":"ElementaryTypeName","src":"12386:7:91","typeDescriptions":{}}},"id":53430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53431,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12439:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12448:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12439:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12463:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12439:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53434,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12503: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":53425,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12336:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12345:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12336:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12372:12:91","12431:6:91","12484:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12336:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12322:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12304:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53438,"nodeType":"ExpressionStatement","src":"12304:253:91"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53439,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12568:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53441,"indexExpression":{"hexValue":"36","id":53440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12581: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":"12568:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53446,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53347,"src":"12658:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12650:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53444,"name":"address","nodeType":"ElementaryTypeName","src":"12650:7:91","typeDescriptions":{}}},"id":53447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12650:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53448,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12703:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12712:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12703:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12727:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12703:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53451,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12767: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":53442,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12600:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12609:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12600:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12636:12:91","12695:6:91","12748:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12600:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12586:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12568:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53455,"nodeType":"ExpressionStatement","src":"12568:253:91"},{"expression":{"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12832:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53458,"indexExpression":{"hexValue":"37","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845: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":"12832:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53463,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53355,"src":"12922:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12914:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53461,"name":"address","nodeType":"ElementaryTypeName","src":"12914:7:91","typeDescriptions":{}}},"id":53464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12914:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12969:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12978:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12969:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12993:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12969:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53468,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13033: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":53459,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12864:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12873:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12864:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12900:12:91","12961:6:91","13014:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12864:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12850:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12832:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53472,"nodeType":"ExpressionStatement","src":"12832:257:91"},{"expression":{"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53473,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13100:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53475,"indexExpression":{"hexValue":"38","id":53474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113: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":"13100:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53480,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53363,"src":"13190:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13182:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53478,"name":"address","nodeType":"ElementaryTypeName","src":"13182:7:91","typeDescriptions":{}}},"id":53481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13182:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13236:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13245:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13236:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13260:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13236:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53485,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13300: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":53476,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13132:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13141:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13132:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13168:12:91","13228:6:91","13281:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13132:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13118:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13100:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53489,"nodeType":"ExpressionStatement","src":"13100:255:91"},{"expression":{"id":53505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53490,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13366:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53492,"indexExpression":{"hexValue":"31","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379: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":"13366:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53497,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53371,"src":"13456:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13448:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53495,"name":"address","nodeType":"ElementaryTypeName","src":"13448:7:91","typeDescriptions":{}}},"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13448:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13490:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13499:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13490:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13514:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13490:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53502,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13554: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":53493,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13398:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13407:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13398:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13434:12:91","13482:6:91","13535:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13398:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13384:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13366:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53506,"nodeType":"ExpressionStatement","src":"13366:231:91"},{"expression":{"id":53522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53507,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13608:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53509,"indexExpression":{"hexValue":"32","id":53508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621: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":"13608:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53514,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53379,"src":"13698:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13690:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53512,"name":"address","nodeType":"ElementaryTypeName","src":"13690:7:91","typeDescriptions":{}}},"id":53515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13731:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13740:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13731:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13755:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13731:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53519,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13795: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":53510,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13640:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13649:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13640:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13676:12:91","13723:6:91","13776:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13640:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13626:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13608:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53523,"nodeType":"ExpressionStatement","src":"13608:229:91"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53524,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13848:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53526,"indexExpression":{"hexValue":"33","id":53525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13861: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":"13848:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53531,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53387,"src":"13938:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13930:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53529,"name":"address","nodeType":"ElementaryTypeName","src":"13930:7:91","typeDescriptions":{}}},"id":53532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13930:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53533,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13974:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13983:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13974:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13998:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13974:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53536,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"14038: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":53527,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13880:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13889:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13880:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13916:12:91","13966:6:91","14019:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13880:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13866:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13848:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53540,"nodeType":"ExpressionStatement","src":"13848:235:91"},{"expression":{"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53541,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14094:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53543,"indexExpression":{"hexValue":"34","id":53542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107: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":"14094:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53548,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53403,"src":"14184:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14176:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53546,"name":"address","nodeType":"ElementaryTypeName","src":"14176:7:91","typeDescriptions":{}}},"id":53549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14176:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53550,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14217:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14226:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14217:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14241:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14217:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53553,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"14281: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":53544,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:91","14209:6:91","14262:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14094:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53557,"nodeType":"ExpressionStatement","src":"14094:228:91"},{"expression":{"id":53573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53558,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14333:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53560,"indexExpression":{"hexValue":"35","id":53559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346: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":"14333:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53565,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53395,"src":"14423:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14415:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53563,"name":"address","nodeType":"ElementaryTypeName","src":"14415:7:91","typeDescriptions":{}}},"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14415:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53567,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14456:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14456:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14480:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14456:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53570,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"14520: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":53561,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14365:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14365:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14401:12:91","14448:6:91","14501:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14365:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14351:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14333:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53574,"nodeType":"ExpressionStatement","src":"14333:229:91"},{"expression":{"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53575,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14573:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53579,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14609:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53580,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"14623: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":53578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14590: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":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"GatewayDiamond","nameLocations":["14594:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14594:14:91"},"referencedDeclaration":36170,"src":"14594:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14590:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14573:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53583,"nodeType":"ExpressionStatement","src":"14573:57:91"},{"expression":{"id":53584,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14648:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53336,"id":53585,"nodeType":"Return","src":"14641:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11493:20:91","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53331,"mutability":"mutable","name":"params","nameLocation":"11554:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"11514:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53330,"nodeType":"UserDefinedTypeName","pathNode":{"id":53329,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11514:14:91","11529:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11514:32:91"},"referencedDeclaration":35883,"src":"11514:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11513:48:91"},"returnParameters":{"id":53336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53587,"src":"11578:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"GatewayDiamond","nameLocations":["11578:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11578:14:91"},"referencedDeclaration":36170,"src":"11578:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11577:16:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53701,"nodeType":"FunctionDefinition","src":"14675:1613:91","nodes":[],"body":{"id":53700,"nodeType":"Block","src":"14951:1337:91","nodes":[],"statements":[{"assignments":[53611],"declarations":[{"constant":false,"id":53611,"mutability":"mutable","name":"diamondCut","nameLocation":"14988:10:91","nodeType":"VariableDeclaration","scope":53700,"src":"14961: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":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"IDiamond.FacetCut","nameLocations":["14961:8:91","14970:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14961:17:91"},"referencedDeclaration":40159,"src":"14961:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53610,"nodeType":"ArrayTypeName","src":"14961:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53618,"initialValue":{"arguments":[{"hexValue":"35","id":53616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15025: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":53615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15001: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":53613,"nodeType":"UserDefinedTypeName","pathNode":{"id":53612,"name":"IDiamond.FacetCut","nameLocations":["15005:8:91","15014:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15005:17:91"},"referencedDeclaration":40159,"src":"15005:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53614,"nodeType":"ArrayTypeName","src":"15005:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15001: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":"14961:66:91"},{"expression":{"id":53631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53619,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15038:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53621,"indexExpression":{"hexValue":"30","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15049: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":"15038:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53624,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53592,"src":"15118:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53625,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15150:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15159:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15150:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15174:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15150:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53628,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"15214: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":53622,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15068:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15077:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15068:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15104:12:91","15142:6:91","15195:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15068:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15054:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15038:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53632,"nodeType":"ExpressionStatement","src":"15038:218:91"},{"expression":{"id":53645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53633,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15267:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53635,"indexExpression":{"hexValue":"31","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15278: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":"15267:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53638,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15347:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53639,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15380:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15389:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15380:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15404:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15380:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53642,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"15444: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":53636,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15297:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15306:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15297:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15333:12:91","15372:6:91","15425:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15297:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15283:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15267:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53646,"nodeType":"ExpressionStatement","src":"15267:220:91"},{"expression":{"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53647,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15498:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53649,"indexExpression":{"hexValue":"32","id":53648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15509: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":"15498:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53652,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53596,"src":"15578:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53653,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15610:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15619:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15610:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15634:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15610:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53656,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"15674: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":53650,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15528:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15537:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15528:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15564:12:91","15602:6:91","15655:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15528:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15514:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15498:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53660,"nodeType":"ExpressionStatement","src":"15498:218:91"},{"expression":{"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53661,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15727:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53663,"indexExpression":{"hexValue":"33","id":53662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15738: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":"15727:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53666,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53598,"src":"15807:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53667,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15841:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15850:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15841:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15865:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15841:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53670,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"15905: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":53664,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15757:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15766:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15757:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15793:12:91","15833:6:91","15886:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15757:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15743:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15727:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53674,"nodeType":"ExpressionStatement","src":"15727:222:91"},{"expression":{"id":53687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15960:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53677,"indexExpression":{"hexValue":"34","id":53676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971: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":"15960:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53680,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53600,"src":"16040:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53681,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16078:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16078:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16102:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16078:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53684,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"16142: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":53678,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15990:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15990:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16026:12:91","16070:6:91","16123:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15990:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15976:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15960:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53688,"nodeType":"ExpressionStatement","src":"15960:230:91"},{"expression":{"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53689,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16201:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53693,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"16236:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53694,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"16248: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":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16213: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":53691,"nodeType":"UserDefinedTypeName","pathNode":{"id":53690,"name":"SubnetActorDiamond","nameLocations":["16217:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16217:18:91"},"referencedDeclaration":36615,"src":"16217:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16201:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53697,"nodeType":"ExpressionStatement","src":"16201:54:91"},{"expression":{"id":53698,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16272:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53605,"id":53699,"nodeType":"Return","src":"16265:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14684:35:91","parameters":{"id":53601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53590,"mutability":"mutable","name":"params","nameLocation":"14773:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14729:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14729:18:91","14748:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14729:36:91"},"referencedDeclaration":36253,"src":"14729:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53592,"mutability":"mutable","name":"getter","nameLocation":"14797:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14789:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53591,"name":"address","nodeType":"ElementaryTypeName","src":"14789:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53594,"mutability":"mutable","name":"manager","nameLocation":"14821:7:91","nodeType":"VariableDeclaration","scope":53701,"src":"14813:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53593,"name":"address","nodeType":"ElementaryTypeName","src":"14813:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53596,"mutability":"mutable","name":"pauser","nameLocation":"14846:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14838:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53595,"name":"address","nodeType":"ElementaryTypeName","src":"14838:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53598,"mutability":"mutable","name":"rewarder","nameLocation":"14870:8:91","nodeType":"VariableDeclaration","scope":53701,"src":"14862:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53597,"name":"address","nodeType":"ElementaryTypeName","src":"14862:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53600,"mutability":"mutable","name":"checkpointer","nameLocation":"14896:12:91","nodeType":"VariableDeclaration","scope":53701,"src":"14888:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53599,"name":"address","nodeType":"ElementaryTypeName","src":"14888:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14719:195:91"},"returnParameters":{"id":53605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53701,"src":"14931:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53603,"nodeType":"UserDefinedTypeName","pathNode":{"id":53602,"name":"SubnetActorDiamond","nameLocations":["14931:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14931:18:91"},"referencedDeclaration":36615,"src":"14931:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14930:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53911,"nodeType":"FunctionDefinition","src":"16294:2480:91","nodes":[],"body":{"id":53910,"nodeType":"Block","src":"16409:2365:91","nodes":[],"statements":[{"assignments":[53712],"declarations":[{"constant":false,"id":53712,"mutability":"mutable","name":"manager","nameLocation":"16443:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"16419:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53711,"nodeType":"UserDefinedTypeName","pathNode":{"id":53710,"name":"SubnetActorManagerFacet","nameLocations":["16419:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16419:23:91"},"referencedDeclaration":51946,"src":"16419:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16453:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"SubnetActorManagerFacet","nameLocations":["16457:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16457:23:91"},"referencedDeclaration":51946,"src":"16457:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16419:63:91"},{"assignments":[53720],"declarations":[{"constant":false,"id":53720,"mutability":"mutable","name":"getter","nameLocation":"16515:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16492:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53719,"nodeType":"UserDefinedTypeName","pathNode":{"id":53718,"name":"SubnetActorGetterFacet","nameLocations":["16492:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16492:22:91"},"referencedDeclaration":51235,"src":"16492:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16524:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53722,"nodeType":"UserDefinedTypeName","pathNode":{"id":53721,"name":"SubnetActorGetterFacet","nameLocations":["16528:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16528:22:91"},"referencedDeclaration":51235,"src":"16528:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16524:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16492:60:91"},{"assignments":[53728],"declarations":[{"constant":false,"id":53728,"mutability":"mutable","name":"pauser","nameLocation":"16584:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16562:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53727,"nodeType":"UserDefinedTypeName","pathNode":{"id":53726,"name":"SubnetActorPauseFacet","nameLocations":["16562:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16562:21:91"},"referencedDeclaration":51991,"src":"16562:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16593:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53730,"nodeType":"UserDefinedTypeName","pathNode":{"id":53729,"name":"SubnetActorPauseFacet","nameLocations":["16597:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16597:21:91"},"referencedDeclaration":51991,"src":"16597:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16593:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16562:58:91"},{"assignments":[53736],"declarations":[{"constant":false,"id":53736,"mutability":"mutable","name":"rewarder","nameLocation":"16653:8:91","nodeType":"VariableDeclaration","scope":53910,"src":"16630:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53735,"nodeType":"UserDefinedTypeName","pathNode":{"id":53734,"name":"SubnetActorRewardFacet","nameLocations":["16630:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16630:22:91"},"referencedDeclaration":52158,"src":"16630:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16664:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53738,"nodeType":"UserDefinedTypeName","pathNode":{"id":53737,"name":"SubnetActorRewardFacet","nameLocations":["16668:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16668:22:91"},"referencedDeclaration":52158,"src":"16668:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16664:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16630:62:91"},{"assignments":[53744],"declarations":[{"constant":false,"id":53744,"mutability":"mutable","name":"checkpointer","nameLocation":"16732:12:91","nodeType":"VariableDeclaration","scope":53910,"src":"16702:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"SubnetActorCheckpointingFacet","nameLocations":["16702:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16702:29:91"},"referencedDeclaration":50577,"src":"16702:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53749,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16747:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53746,"nodeType":"UserDefinedTypeName","pathNode":{"id":53745,"name":"SubnetActorCheckpointingFacet","nameLocations":["16751:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16751:29:91"},"referencedDeclaration":50577,"src":"16751:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16702:80:91"},{"assignments":[53752],"declarations":[{"constant":false,"id":53752,"mutability":"mutable","name":"louper","nameLocation":"16811:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16793:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53751,"nodeType":"UserDefinedTypeName","pathNode":{"id":53750,"name":"DiamondLoupeFacet","nameLocations":["16793:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16793:17:91"},"referencedDeclaration":37355,"src":"16793:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53757,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16820:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"DiamondLoupeFacet","nameLocations":["16824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16824:17:91"},"referencedDeclaration":37355,"src":"16824:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16820:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16793:50:91"},{"assignments":[53760],"declarations":[{"constant":false,"id":53760,"mutability":"mutable","name":"cutter","nameLocation":"16869:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16853:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53759,"nodeType":"UserDefinedTypeName","pathNode":{"id":53758,"name":"DiamondCutFacet","nameLocations":["16853:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16853:15:91"},"referencedDeclaration":36918,"src":"16853:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53765,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16878:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53762,"nodeType":"UserDefinedTypeName","pathNode":{"id":53761,"name":"DiamondCutFacet","nameLocations":["16882:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16882:15:91"},"referencedDeclaration":36918,"src":"16882:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16878:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16853:46:91"},{"assignments":[53771],"declarations":[{"constant":false,"id":53771,"mutability":"mutable","name":"diamondCut","nameLocation":"16937:10:91","nodeType":"VariableDeclaration","scope":53910,"src":"16910: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":53769,"nodeType":"UserDefinedTypeName","pathNode":{"id":53768,"name":"IDiamond.FacetCut","nameLocations":["16910:8:91","16919:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16910:17:91"},"referencedDeclaration":40159,"src":"16910:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53770,"nodeType":"ArrayTypeName","src":"16910:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"hexValue":"37","id":53776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16974: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":53775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16950: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":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"IDiamond.FacetCut","nameLocations":["16954:8:91","16963:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16954:17:91"},"referencedDeclaration":40159,"src":"16954:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53774,"nodeType":"ArrayTypeName","src":"16954:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16950: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":"16910:66:91"},{"expression":{"id":53794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53779,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"16987:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53781,"indexExpression":{"hexValue":"30","id":53780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16998: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":"16987:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53786,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"17075:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53784,"name":"address","nodeType":"ElementaryTypeName","src":"17067:7:91","typeDescriptions":{}}},"id":53787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53788,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53791,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"17173: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":53782,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17017:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17026:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17017:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17053:12:91","17101:6:91","17154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17017:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17003:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"16987:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53795,"nodeType":"ExpressionStatement","src":"16987:229:91"},{"expression":{"id":53811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53796,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17227:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53798,"indexExpression":{"hexValue":"31","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17238: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":"17227:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53803,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53720,"src":"17315:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17307:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53801,"name":"address","nodeType":"ElementaryTypeName","src":"17307:7:91","typeDescriptions":{}}},"id":53804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17307:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53805,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17348:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17357:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17348:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17372:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17348:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53808,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"17412: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":53799,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17257:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17257:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17293:12:91","17340:6:91","17393:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17257:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17243:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17227:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53812,"nodeType":"ExpressionStatement","src":"17227:227:91"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17465:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"32","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17476: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":"17465:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53728,"src":"17553:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17545:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17545:7:91","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17545:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17595:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17586:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17610:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17586:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"17650: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":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17495:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17495:17:91","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":["17531:12:91","17578:6:91","17631:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17495:187:91","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":"17481:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17465:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17465:227:91"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17703:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"33","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17714: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":"17703:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53736,"src":"17791:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17783:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17783:7:91","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17783:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17826:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17835:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17826:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17850:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17826:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"17890: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":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17733:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17742:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17733:17:91","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":["17769:12:91","17818:6:91","17871:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17733:191:91","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":"17719:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17703:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17703:231:91"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17945:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"34","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17956: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":"17945:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18033:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18025:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:91","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18025:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18072:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18081:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18072:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18096:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18072:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"18136: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":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17975:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17984:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17975:17:91","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":["18011:12:91","18064:6:91","18117:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17975:199:91","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":"17961:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17945:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17945:239:91"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18195:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"35","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18206: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":"18195:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53760,"src":"18283:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18275:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18275:7:91","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18275:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18316:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18325:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18316:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18340:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18316:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"18380: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":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18225:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18225:17:91","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":["18261:12:91","18308:6:91","18361:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18225:187:91","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":"18211:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18195:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18195:227:91"},{"expression":{"id":53896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53881,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18433:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53883,"indexExpression":{"hexValue":"36","id":53882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18444: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":"18433:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53888,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18521:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18513:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53886,"name":"address","nodeType":"ElementaryTypeName","src":"18513:7:91","typeDescriptions":{}}},"id":53889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18513:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53890,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18554:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18563:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18554:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18578:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18554:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53893,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"18618: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":53884,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18463:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18472:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18463:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18499:12:91","18546:6:91","18599:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18463:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18449:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18433:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53897,"nodeType":"ExpressionStatement","src":"18433:227:91"},{"assignments":[53900],"declarations":[{"constant":false,"id":53900,"mutability":"mutable","name":"diamond","nameLocation":"18690:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"18671:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53899,"nodeType":"UserDefinedTypeName","pathNode":{"id":53898,"name":"SubnetActorDiamond","nameLocations":["18671:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18671:18:91"},"referencedDeclaration":36615,"src":"18671:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53907,"initialValue":{"arguments":[{"id":53904,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18723:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53905,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"18735: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":53903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18700: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":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"SubnetActorDiamond","nameLocations":["18704:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18704:18:91"},"referencedDeclaration":36615,"src":"18704:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18700:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18671:71:91"},{"expression":{"id":53908,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"18760:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53709,"id":53909,"nodeType":"Return","src":"18753:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16303:17:91","parameters":{"id":53705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53704,"mutability":"mutable","name":"params","nameLocation":"16365:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16321:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53703,"nodeType":"UserDefinedTypeName","pathNode":{"id":53702,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16321:18:91","16340:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16321:36:91"},"referencedDeclaration":36253,"src":"16321:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16320:52:91"},"returnParameters":{"id":53709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53911,"src":"16389:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53707,"nodeType":"UserDefinedTypeName","pathNode":{"id":53706,"name":"SubnetActorDiamond","nameLocations":["16389:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16389:18:91"},"referencedDeclaration":36615,"src":"16389:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16388:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53940,"nodeType":"FunctionDefinition","src":"18780:522:91","nodes":[],"body":{"id":53939,"nodeType":"Block","src":"19024:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53928,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53913,"src":"19065:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53929,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53916,"src":"19094:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53930,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53918,"src":"19118:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53931,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53920,"src":"19156:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53932,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53922,"src":"19184:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53924,"src":"19210:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53934,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19243:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19258:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19243:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19282: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":53927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":54243,"src":"19034: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":53937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19034:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53938,"nodeType":"ExpressionStatement","src":"19034:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18789:17:91","parameters":{"id":53925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53913,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18824:15:91","nodeType":"VariableDeclaration","scope":53940,"src":"18816:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53912,"name":"address","nodeType":"ElementaryTypeName","src":"18816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53916,"mutability":"mutable","name":"_consensus","nameLocation":"18863:10:91","nodeType":"VariableDeclaration","scope":53940,"src":"18849:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53915,"nodeType":"UserDefinedTypeName","pathNode":{"id":53914,"name":"ConsensusType","nameLocations":["18849:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18849:13:91"},"referencedDeclaration":37359,"src":"18849:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18891:24:91","nodeType":"VariableDeclaration","scope":53940,"src":"18883:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53917,"name":"uint256","nodeType":"ElementaryTypeName","src":"18883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53920,"mutability":"mutable","name":"_minValidators","nameLocation":"18932:14:91","nodeType":"VariableDeclaration","scope":53940,"src":"18925:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53919,"name":"uint64","nodeType":"ElementaryTypeName","src":"18925:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53922,"mutability":"mutable","name":"_checkPeriod","nameLocation":"18963:12:91","nodeType":"VariableDeclaration","scope":53940,"src":"18956:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53921,"name":"uint64","nodeType":"ElementaryTypeName","src":"18956:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53924,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"18991:19:91","nodeType":"VariableDeclaration","scope":53940,"src":"18985:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53923,"name":"uint8","nodeType":"ElementaryTypeName","src":"18985:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18806:210:91"},"returnParameters":{"id":53926,"nodeType":"ParameterList","parameters":[],"src":"19024:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54243,"nodeType":"FunctionDefinition","src":"19308:3730:91","nodes":[],"body":{"id":54242,"nodeType":"Block","src":"19631:3407:91","nodes":[],"statements":[{"assignments":[53963],"declarations":[{"constant":false,"id":53963,"mutability":"mutable","name":"_parentId","nameLocation":"19657:9:91","nodeType":"VariableDeclaration","scope":54242,"src":"19641:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53962,"nodeType":"UserDefinedTypeName","pathNode":{"id":53961,"name":"SubnetID","nameLocations":["19641:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19641:8:91"},"referencedDeclaration":50030,"src":"19641:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53972,"initialValue":{"arguments":[{"id":53965,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"19678:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19709: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":53968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19695: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":53966,"name":"address","nodeType":"ElementaryTypeName","src":"19699:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53967,"nodeType":"ArrayTypeName","src":"19699:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19695: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":53964,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19669:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19669:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19641:71:91"},{"expression":{"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53973,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"19723:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19735:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53975,"nodeType":"UserDefinedTypeName","pathNode":{"id":53974,"name":"SubnetActorManagerFacet","nameLocations":["19739:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19739:23:91"},"referencedDeclaration":51946,"src":"19739:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19735:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19723:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53979,"nodeType":"ExpressionStatement","src":"19723:41:91"},{"expression":{"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53980,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"19774:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19785:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53982,"nodeType":"UserDefinedTypeName","pathNode":{"id":53981,"name":"SubnetActorGetterFacet","nameLocations":["19789:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19789:22:91"},"referencedDeclaration":51235,"src":"19789:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19774:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53986,"nodeType":"ExpressionStatement","src":"19774:39:91"},{"expression":{"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19823:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19834:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53989,"nodeType":"UserDefinedTypeName","pathNode":{"id":53988,"name":"SubnetActorPauseFacet","nameLocations":["19838:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19838:21:91"},"referencedDeclaration":51991,"src":"19838:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19823:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53993,"nodeType":"ExpressionStatement","src":"19823:38:91"},{"expression":{"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53994,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19871:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19888:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53996,"nodeType":"UserDefinedTypeName","pathNode":{"id":53995,"name":"SubnetActorCheckpointingFacet","nameLocations":["19892:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19892:29:91"},"referencedDeclaration":50577,"src":"19892:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19888:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19871:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54000,"nodeType":"ExpressionStatement","src":"19871:52:91"},{"expression":{"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54001,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"19933:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19946:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54003,"nodeType":"UserDefinedTypeName","pathNode":{"id":54002,"name":"SubnetActorRewardFacet","nameLocations":["19950:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19950:22:91"},"referencedDeclaration":52158,"src":"19950:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19946:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19933:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54007,"nodeType":"ExpressionStatement","src":"19933:41:91"},{"expression":{"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54008,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"19984:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19995:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54010,"nodeType":"UserDefinedTypeName","pathNode":{"id":54009,"name":"DiamondCutFacet","nameLocations":["19999:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"19999:15:91"},"referencedDeclaration":36918,"src":"19999:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19995:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19984:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54014,"nodeType":"ExpressionStatement","src":"19984:32:91"},{"expression":{"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54015,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"20026:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20037:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"DiamondLoupeFacet","nameLocations":["20041:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20041:17:91"},"referencedDeclaration":37355,"src":"20041:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20037:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20026:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54021,"nodeType":"ExpressionStatement","src":"20026:34:91"},{"assignments":[54027],"declarations":[{"constant":false,"id":54027,"mutability":"mutable","name":"diamondCut","nameLocation":"20098:10:91","nodeType":"VariableDeclaration","scope":54242,"src":"20071: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":54025,"nodeType":"UserDefinedTypeName","pathNode":{"id":54024,"name":"IDiamond.FacetCut","nameLocations":["20071:8:91","20080:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20071:17:91"},"referencedDeclaration":40159,"src":"20071:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54026,"nodeType":"ArrayTypeName","src":"20071:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54034,"initialValue":{"arguments":[{"hexValue":"37","id":54032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20135: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":54031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20111: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":54029,"nodeType":"UserDefinedTypeName","pathNode":{"id":54028,"name":"IDiamond.FacetCut","nameLocations":["20115:8:91","20124:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20115:17:91"},"referencedDeclaration":40159,"src":"20115:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54030,"nodeType":"ArrayTypeName","src":"20115:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20111: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":"20071:66:91"},{"expression":{"id":54050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54035,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54037,"indexExpression":{"hexValue":"30","id":54036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20159: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":"20148:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54042,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"20236:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20228:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54040,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:91","typeDescriptions":{}}},"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20228:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54044,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20272:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20281:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20272:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20296:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20272:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54047,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"20336: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":54038,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20178:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20187:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20178:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20214:12:91","20264:6:91","20317:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20178:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20164:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20148:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54051,"nodeType":"ExpressionStatement","src":"20148:231:91"},{"expression":{"id":54067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54052,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20390:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54054,"indexExpression":{"hexValue":"31","id":54053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20401: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":"20390:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54059,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"20478:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20470:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54057,"name":"address","nodeType":"ElementaryTypeName","src":"20470:7:91","typeDescriptions":{}}},"id":54060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20470:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54061,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20513:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20522:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20513:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20537:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20513:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54064,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"20577: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":54055,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20420:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20429:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20420:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20456:12:91","20505:6:91","20558:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20420:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20406:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20390:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54068,"nodeType":"ExpressionStatement","src":"20390:229:91"},{"expression":{"id":54084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54069,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20630:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54071,"indexExpression":{"hexValue":"32","id":54070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20641: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":"20630:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54076,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"20718:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20710:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54074,"name":"address","nodeType":"ElementaryTypeName","src":"20710:7:91","typeDescriptions":{}}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20710:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54078,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20753:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20762:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20753:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20777:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20753:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54081,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"20817: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":54072,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20660:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20669:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20660:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20696:12:91","20745:6:91","20798:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20660:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20646:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20630:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54085,"nodeType":"ExpressionStatement","src":"20630:229:91"},{"expression":{"id":54101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54086,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54088,"indexExpression":{"hexValue":"33","id":54087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20881: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":"20870:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54093,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"20958:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20950:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54091,"name":"address","nodeType":"ElementaryTypeName","src":"20950:7:91","typeDescriptions":{}}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20950:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54095,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20995:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21004:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20995:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21019:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20995:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54098,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"21059: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":54089,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20900:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20909:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20900:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20936:12:91","20987:6:91","21040:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20900:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20886:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20870:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54102,"nodeType":"ExpressionStatement","src":"20870:233:91"},{"expression":{"id":54118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54103,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21114:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54105,"indexExpression":{"hexValue":"34","id":54104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21125: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":"21114:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54110,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"21202:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21194:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54108,"name":"address","nodeType":"ElementaryTypeName","src":"21194:7:91","typeDescriptions":{}}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54112,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21243:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21252:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21243:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21243:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54115,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"21307: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":54106,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21144:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21153:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21144:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21180:12:91","21235:6:91","21288:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21144:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21130:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21114:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54119,"nodeType":"ExpressionStatement","src":"21114:241:91"},{"expression":{"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54120,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54122,"indexExpression":{"hexValue":"35","id":54121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21377: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":"21366:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54127,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"21454:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21446:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54125,"name":"address","nodeType":"ElementaryTypeName","src":"21446:7:91","typeDescriptions":{}}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54129,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21489:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21498:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21489:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21513:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21489:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54132,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"21553: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":54123,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21396:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21396:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21432:12:91","21481:6:91","21534:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21396:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21382:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21366:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54136,"nodeType":"ExpressionStatement","src":"21366:229:91"},{"expression":{"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54137,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21606:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54139,"indexExpression":{"hexValue":"36","id":54138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21617: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":"21606:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54144,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"21694:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21686:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54142,"name":"address","nodeType":"ElementaryTypeName","src":"21686:7:91","typeDescriptions":{}}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21686:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54146,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21729:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21738:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21729:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21753:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21729:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54149,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"21793: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":54140,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21636:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21645:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21636:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21672:12:91","21721:6:91","21774:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21636:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21622:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21606:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54153,"nodeType":"ExpressionStatement","src":"21606:229:91"},{"expression":{"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54154,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"21846:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54158,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21894:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54161,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53963,"src":"21983:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54162,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53942,"src":"22026:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54163,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"22070:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54164,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53947,"src":"22123:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54165,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"22180:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54166,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53951,"src":"22233:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"22283:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54168,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53958,"src":"22343:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22395:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54170,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53956,"src":"22431:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54171,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"22480:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54172,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22533:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22552:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22533:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22533: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":54159,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21918:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21937:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21918:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21973:8:91","22010:14:91","22059:9:91","22098:23:91","22165:13:91","22212:19:91","22263:18:91","22320:21:91","22383:10:91","22415:14:91","22464:14:91","22519:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21918: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":54157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21858: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":54156,"nodeType":"UserDefinedTypeName","pathNode":{"id":54155,"name":"SubnetActorDiamond","nameLocations":["21862:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21862:18:91"},"referencedDeclaration":36615,"src":"21862:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21858:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21846:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54178,"nodeType":"ExpressionStatement","src":"21846:739:91"},{"expression":{"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"22596:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54183,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54181,"name":"address","nodeType":"ElementaryTypeName","src":"22632:7:91","typeDescriptions":{}}},"id":54184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54180,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22608:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22608:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22596:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54187,"nodeType":"ExpressionStatement","src":"22596:55:91"},{"expression":{"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54188,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"22661:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54192,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22702:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22694:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54190,"name":"address","nodeType":"ElementaryTypeName","src":"22694:7:91","typeDescriptions":{}}},"id":54193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54189,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22672:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22672:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22661:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54196,"nodeType":"ExpressionStatement","src":"22661:52:91"},{"expression":{"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54197,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"22723:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54201,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22767:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22759:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54199,"name":"address","nodeType":"ElementaryTypeName","src":"22759:7:91","typeDescriptions":{}}},"id":54202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22759:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54198,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22736:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22736:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22723:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54205,"nodeType":"ExpressionStatement","src":"22723:55:91"},{"expression":{"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54206,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"22788:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54210,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22843:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22835:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54208,"name":"address","nodeType":"ElementaryTypeName","src":"22835:7:91","typeDescriptions":{}}},"id":54211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54207,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22805:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22805:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22788:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54214,"nodeType":"ExpressionStatement","src":"22788:66:91"},{"expression":{"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54215,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"22864:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54219,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22906:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22898:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54217,"name":"address","nodeType":"ElementaryTypeName","src":"22898:7:91","typeDescriptions":{}}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22898:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54216,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22875:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22864:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54223,"nodeType":"ExpressionStatement","src":"22864:53:91"},{"expression":{"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54224,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"22927:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54228,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22962:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54226,"name":"address","nodeType":"ElementaryTypeName","src":"22954:7:91","typeDescriptions":{}}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22954:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54225,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22938:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22927:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54232,"nodeType":"ExpressionStatement","src":"22927:46:91"},{"expression":{"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54233,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"22983:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54237,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"23020:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23012:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54235,"name":"address","nodeType":"ElementaryTypeName","src":"23012:7:91","typeDescriptions":{}}},"id":54238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23012:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54234,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"22994:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22994:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"22983:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54241,"nodeType":"ExpressionStatement","src":"22983:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19317:17:91","parameters":{"id":53959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53942,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19352:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19344:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53941,"name":"address","nodeType":"ElementaryTypeName","src":"19344:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53945,"mutability":"mutable","name":"_consensus","nameLocation":"19391:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"19377:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53944,"nodeType":"UserDefinedTypeName","pathNode":{"id":53943,"name":"ConsensusType","nameLocations":["19377:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19377:13:91"},"referencedDeclaration":37359,"src":"19377:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53947,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19419:24:91","nodeType":"VariableDeclaration","scope":54243,"src":"19411:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53946,"name":"uint256","nodeType":"ElementaryTypeName","src":"19411:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53949,"mutability":"mutable","name":"_minValidators","nameLocation":"19460:14:91","nodeType":"VariableDeclaration","scope":54243,"src":"19453:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53948,"name":"uint64","nodeType":"ElementaryTypeName","src":"19453:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53951,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19491:12:91","nodeType":"VariableDeclaration","scope":54243,"src":"19484:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53950,"name":"uint64","nodeType":"ElementaryTypeName","src":"19484:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53953,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19519:19:91","nodeType":"VariableDeclaration","scope":54243,"src":"19513:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53952,"name":"uint8","nodeType":"ElementaryTypeName","src":"19513:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53956,"mutability":"mutable","name":"_permissionMode","nameLocation":"19563:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19548:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"PermissionMode","nameLocations":["19548:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19548:14:91"},"referencedDeclaration":50118,"src":"19548:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53958,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19595:22:91","nodeType":"VariableDeclaration","scope":54243,"src":"19588:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53957,"name":"uint16","nodeType":"ElementaryTypeName","src":"19588:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19334:289:91"},"returnParameters":{"id":53960,"nodeType":"ParameterList","parameters":[],"src":"19631:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54336,"nodeType":"FunctionDefinition","src":"23044:997:91","nodes":[],"body":{"id":54335,"nodeType":"Block","src":"23136:905:91","nodes":[],"statements":[{"assignments":[54253],"declarations":[{"constant":false,"id":54253,"mutability":"mutable","name":"mockedManager","nameLocation":"23162:13:91","nodeType":"VariableDeclaration","scope":54335,"src":"23146:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":54252,"nodeType":"UserDefinedTypeName","pathNode":{"id":54251,"name":"SubnetActorMock","nameLocations":["23146:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23146:15:91"},"referencedDeclaration":58922,"src":"23146:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54258,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23178:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58922_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54255,"nodeType":"UserDefinedTypeName","pathNode":{"id":54254,"name":"SubnetActorMock","nameLocations":["23182:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23182:15:91"},"referencedDeclaration":58922,"src":"23182:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}},"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23178:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23146:53:91"},{"assignments":[54261],"declarations":[{"constant":false,"id":54261,"mutability":"mutable","name":"getter","nameLocation":"23232:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23209:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54260,"nodeType":"UserDefinedTypeName","pathNode":{"id":54259,"name":"SubnetActorGetterFacet","nameLocations":["23209:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23209:22:91"},"referencedDeclaration":51235,"src":"23209:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23241:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54263,"nodeType":"UserDefinedTypeName","pathNode":{"id":54262,"name":"SubnetActorGetterFacet","nameLocations":["23245:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23245:22:91"},"referencedDeclaration":51235,"src":"23245:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23209:60:91"},{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"diamondCut","nameLocation":"23307:10:91","nodeType":"VariableDeclaration","scope":54335,"src":"23280: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":54270,"nodeType":"UserDefinedTypeName","pathNode":{"id":54269,"name":"IDiamond.FacetCut","nameLocations":["23280:8:91","23289:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23280:17:91"},"referencedDeclaration":40159,"src":"23280:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54271,"nodeType":"ArrayTypeName","src":"23280:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54279,"initialValue":{"arguments":[{"hexValue":"32","id":54277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23344: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":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23320: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":54274,"nodeType":"UserDefinedTypeName","pathNode":{"id":54273,"name":"IDiamond.FacetCut","nameLocations":["23324:8:91","23333:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23324:17:91"},"referencedDeclaration":40159,"src":"23324:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54275,"nodeType":"ArrayTypeName","src":"23324:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23320: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":"23280:66:91"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54280,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23357:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54282,"indexExpression":{"hexValue":"30","id":54281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23368: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":"23357:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54287,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"23445:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}],"id":54286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23437:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54285,"name":"address","nodeType":"ElementaryTypeName","src":"23437:7:91","typeDescriptions":{}}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23437:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54289,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23485:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23485:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23509:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23485:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54292,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"23549: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":54283,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23387:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23396:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23387:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23423:12:91","23477:6:91","23530:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23387:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23373:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23357:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54296,"nodeType":"ExpressionStatement","src":"23357:241:91"},{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54297,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23609:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54299,"indexExpression":{"hexValue":"31","id":54298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23620: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":"23609:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54304,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54261,"src":"23697:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23689:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54302,"name":"address","nodeType":"ElementaryTypeName","src":"23689:7:91","typeDescriptions":{}}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23689:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54306,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23730:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23739:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23730:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23754:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23730:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54309,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"23794: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":54300,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23639:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23648:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23639:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23675:12:91","23722:6:91","23775:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23639:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23625:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23609:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54313,"nodeType":"ExpressionStatement","src":"23609:227:91"},{"assignments":[54318],"declarations":[{"constant":false,"id":54318,"mutability":"mutable","name":"params","nameLocation":"23891:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23847:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54317,"nodeType":"UserDefinedTypeName","pathNode":{"id":54316,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23847:18:91","23866:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23847:36:91"},"referencedDeclaration":36253,"src":"23847:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54322,"initialValue":{"arguments":[{"id":54320,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54245,"src":"23936:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54319,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"23900: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":54321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23900:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23847:92:91"},{"assignments":[54325],"declarations":[{"constant":false,"id":54325,"mutability":"mutable","name":"d","nameLocation":"23969:1:91","nodeType":"VariableDeclaration","scope":54335,"src":"23950:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54324,"nodeType":"UserDefinedTypeName","pathNode":{"id":54323,"name":"SubnetActorDiamond","nameLocations":["23950:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23950:18:91"},"referencedDeclaration":36615,"src":"23950:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54332,"initialValue":{"arguments":[{"id":54329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23996:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54330,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54318,"src":"24008: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":54328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23973: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":54327,"nodeType":"UserDefinedTypeName","pathNode":{"id":54326,"name":"SubnetActorDiamond","nameLocations":["23977:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23977:18:91"},"referencedDeclaration":36615,"src":"23977:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23973:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23950:65:91"},{"expression":{"id":54333,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54325,"src":"24033:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54250,"id":54334,"nodeType":"Return","src":"24026:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23053:34:91","parameters":{"id":54246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54245,"mutability":"mutable","name":"gw","nameLocation":"23096:2:91","nodeType":"VariableDeclaration","scope":54336,"src":"23088:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54244,"name":"address","nodeType":"ElementaryTypeName","src":"23088:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23087:12:91"},"returnParameters":{"id":54250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54336,"src":"23116:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54248,"nodeType":"UserDefinedTypeName","pathNode":{"id":54247,"name":"SubnetActorDiamond","nameLocations":["23116:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23116:18:91"},"referencedDeclaration":36615,"src":"23116:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23115:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54478,"nodeType":"FunctionDefinition","src":"24093:1703:91","nodes":[],"body":{"id":54477,"nodeType":"Block","src":"24231:1565:91","nodes":[],"statements":[{"assignments":[54350],"declarations":[{"constant":false,"id":54350,"mutability":"mutable","name":"diamondCut","nameLocation":"24268:10:91","nodeType":"VariableDeclaration","scope":54477,"src":"24241: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":54348,"nodeType":"UserDefinedTypeName","pathNode":{"id":54347,"name":"IDiamond.FacetCut","nameLocations":["24241:8:91","24250:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24241:17:91"},"referencedDeclaration":40159,"src":"24241:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54349,"nodeType":"ArrayTypeName","src":"24241:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54357,"initialValue":{"arguments":[{"hexValue":"34","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24305: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":54354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24281: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":54352,"nodeType":"UserDefinedTypeName","pathNode":{"id":54351,"name":"IDiamond.FacetCut","nameLocations":["24285:8:91","24294:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24285:17:91"},"referencedDeclaration":40159,"src":"24285:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54353,"nodeType":"ArrayTypeName","src":"24285:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24281: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":"24241:66:91"},{"assignments":[54360],"declarations":[{"constant":false,"id":54360,"mutability":"mutable","name":"regCutFacet","nameLocation":"24334:11:91","nodeType":"VariableDeclaration","scope":54477,"src":"24318:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54359,"nodeType":"UserDefinedTypeName","pathNode":{"id":54358,"name":"DiamondCutFacet","nameLocations":["24318:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24318:15:91"},"referencedDeclaration":36918,"src":"24318:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24348:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54362,"nodeType":"UserDefinedTypeName","pathNode":{"id":54361,"name":"DiamondCutFacet","nameLocations":["24352:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24352:15:91"},"referencedDeclaration":36918,"src":"24352:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24318:51:91"},{"assignments":[54368],"declarations":[{"constant":false,"id":54368,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24397:13:91","nodeType":"VariableDeclaration","scope":54477,"src":"24379:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54367,"nodeType":"UserDefinedTypeName","pathNode":{"id":54366,"name":"DiamondLoupeFacet","nameLocations":["24379:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24379:17:91"},"referencedDeclaration":37355,"src":"24379:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24413:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54370,"nodeType":"UserDefinedTypeName","pathNode":{"id":54369,"name":"DiamondLoupeFacet","nameLocations":["24417:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24417:17:91"},"referencedDeclaration":37355,"src":"24417:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24413:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24379:57:91"},{"assignments":[54376],"declarations":[{"constant":false,"id":54376,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24466:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24446:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54375,"nodeType":"UserDefinedTypeName","pathNode":{"id":54374,"name":"RegisterSubnetFacet","nameLocations":["24446:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24446:19:91"},"referencedDeclaration":52286,"src":"24446:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24483:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54378,"nodeType":"UserDefinedTypeName","pathNode":{"id":54377,"name":"RegisterSubnetFacet","nameLocations":["24487:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24487:19:91"},"referencedDeclaration":52286,"src":"24487:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24483:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24446:62:91"},{"assignments":[54384],"declarations":[{"constant":false,"id":54384,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24536:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24518:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54383,"nodeType":"UserDefinedTypeName","pathNode":{"id":54382,"name":"SubnetGetterFacet","nameLocations":["24518:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24518:17:91"},"referencedDeclaration":52524,"src":"24518:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54389,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24553:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54386,"nodeType":"UserDefinedTypeName","pathNode":{"id":54385,"name":"SubnetGetterFacet","nameLocations":["24557:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24557:17:91"},"referencedDeclaration":52524,"src":"24557:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24553:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24518:58:91"},{"expression":{"id":54405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54390,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24587:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54392,"indexExpression":{"hexValue":"30","id":54391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24598: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":"24587:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54397,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54368,"src":"24675:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24667:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54395,"name":"address","nodeType":"ElementaryTypeName","src":"24667:7:91","typeDescriptions":{}}},"id":54398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24667:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54399,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24715:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24724:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24715:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24739:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24715:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54402,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"24779: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":54393,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24617:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24626:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24617:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24653:12:91","24707:6:91","24760:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24617:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24603:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24587:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54406,"nodeType":"ExpressionStatement","src":"24587:240:91"},{"expression":{"id":54422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54407,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24837:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54409,"indexExpression":{"hexValue":"31","id":54408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24848: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":"24837:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54414,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54360,"src":"24925:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24917:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54412,"name":"address","nodeType":"ElementaryTypeName","src":"24917:7:91","typeDescriptions":{}}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24917:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54416,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24963:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24972:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24963:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24963:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54419,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"25027: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":54410,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24867:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24876:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24867:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24903:12:91","24955:6:91","25008:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24867:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24853:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24837:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54423,"nodeType":"ExpressionStatement","src":"24837:238:91"},{"expression":{"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54424,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25085:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54426,"indexExpression":{"hexValue":"32","id":54425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25096: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":"25085:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54431,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54376,"src":"25173:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25165:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54429,"name":"address","nodeType":"ElementaryTypeName","src":"25165:7:91","typeDescriptions":{}}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25165:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54433,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25214:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25223:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25214:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25238:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25214:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54436,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"25278: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":54427,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25124:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25115:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25151:12:91","25206:6:91","25259:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25115:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25101:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25085:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54440,"nodeType":"ExpressionStatement","src":"25085:246:91"},{"expression":{"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54441,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25341:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54443,"indexExpression":{"hexValue":"33","id":54442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25352: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":"25341:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54448,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"25429:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25421:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54446,"name":"address","nodeType":"ElementaryTypeName","src":"25421:7:91","typeDescriptions":{}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25421:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54450,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25470:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25479:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25470:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25494:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25470:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54453,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"25534: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":54444,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25371:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25380:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25371:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25407:12:91","25462:6:91","25515:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25371:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25357:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25341:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54457,"nodeType":"ExpressionStatement","src":"25341:252:91"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25626:17:91","nodeType":"VariableDeclaration","scope":54477,"src":"25604:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"SubnetRegistryDiamond","nameLocations":["25604:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25604:21:91"},"referencedDeclaration":36853,"src":"25604:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54467,"initialValue":{"arguments":[{"id":54464,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25672:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54465,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"25684: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":54463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25646: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":54462,"nodeType":"UserDefinedTypeName","pathNode":{"id":54461,"name":"SubnetRegistryDiamond","nameLocations":["25650:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25650:21:91"},"referencedDeclaration":36853,"src":"25650:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25646:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25604:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54471,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25736:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25728:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54469,"name":"address","nodeType":"ElementaryTypeName","src":"25728:7:91","typeDescriptions":{}}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25728:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54468,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53086,"src":"25706:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25706:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54474,"nodeType":"EmitStatement","src":"25701:54:91"},{"expression":{"id":54475,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25772:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54344,"id":54476,"nodeType":"Return","src":"25765:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24102:20:91","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"params","nameLocation":"24179:6:91","nodeType":"VariableDeclaration","scope":54478,"src":"24132:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54338,"nodeType":"UserDefinedTypeName","pathNode":{"id":54337,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24132:21:91","24154:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24132:39:91"},"referencedDeclaration":36652,"src":"24132:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24122:69:91"},"returnParameters":{"id":54344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54478,"src":"24208:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54342,"nodeType":"UserDefinedTypeName","pathNode":{"id":54341,"name":"SubnetRegistryDiamond","nameLocations":["24208:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24208:21:91"},"referencedDeclaration":36853,"src":"24208:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24207:23:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54507,"nodeType":"FunctionDefinition","src":"25802:190:91","nodes":[],"body":{"id":54506,"nodeType":"Block","src":"25883:109:91","nodes":[],"statements":[{"body":{"id":54502,"nodeType":"Block","src":"25924:42:91","statements":[{"expression":{"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54496,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25938:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54497,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54481,"src":"25945:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54499,"indexExpression":{"id":54498,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25945:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25938:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54501,"nodeType":"ExpressionStatement","src":"25938:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25912:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25916:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25912:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54503,"initializationExpression":{"assignments":[54487],"declarations":[{"constant":false,"id":54487,"mutability":"mutable","name":"i","nameLocation":"25905:1:91","nodeType":"VariableDeclaration","scope":54503,"src":"25898:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54486,"name":"uint64","nodeType":"ElementaryTypeName","src":"25898:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54489,"initialValue":{"hexValue":"30","id":54488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25898:12:91"},"loopExpression":{"expression":{"id":54494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25919:3:91","subExpression":{"id":54493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25919:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54495,"nodeType":"ExpressionStatement","src":"25919:3:91"},"nodeType":"ForStatement","src":"25893:73:91"},{"expression":{"id":54504,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25982:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54485,"id":54505,"nodeType":"Return","src":"25975:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25811:11:91","parameters":{"id":54482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54481,"mutability":"mutable","name":"weights","nameLocation":"25840:7:91","nodeType":"VariableDeclaration","scope":54507,"src":"25823:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54479,"name":"uint256","nodeType":"ElementaryTypeName","src":"25823:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54480,"nodeType":"ArrayTypeName","src":"25823:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25822:26:91"},"returnParameters":{"id":54485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54484,"mutability":"mutable","name":"sum","nameLocation":"25878:3:91","nodeType":"VariableDeclaration","scope":54507,"src":"25870:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54483,"name":"uint256","nodeType":"ElementaryTypeName","src":"25870:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25869:13:91"},"scope":55675,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54682,"nodeType":"FunctionDefinition","src":"25998:933:91","nodes":[],"body":{"id":54681,"nodeType":"Block","src":"26101:830:91","nodes":[],"statements":[{"expression":{"id":54524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26111: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":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26141: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":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26124: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":54519,"nodeType":"UserDefinedTypeName","pathNode":{"id":54518,"name":"FvmAddress","nameLocations":["26128:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26128:10:91"},"referencedDeclaration":49951,"src":"26128:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54520,"nodeType":"ArrayTypeName","src":"26128:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26124:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26111:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54525,"nodeType":"ExpressionStatement","src":"26111:32:91"},{"expression":{"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54526,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26153:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54528,"indexExpression":{"hexValue":"30","id":54527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26164: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":"26153:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26199: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":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26191:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26194:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26191:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26191:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54529,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26169:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26186:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26169: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":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26169:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26153:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54537,"nodeType":"ExpressionStatement","src":"26153:51:91"},{"expression":{"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54538,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26214:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54540,"indexExpression":{"hexValue":"31","id":54539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26225: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":"26214:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26260: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":54543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26252:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26255:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26252:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26252:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54541,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26230:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26247:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26230: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":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26230:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26214:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54549,"nodeType":"ExpressionStatement","src":"26214:51:91"},{"expression":{"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54550,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26275:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54552,"indexExpression":{"hexValue":"32","id":54551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26286: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":"26275:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26321: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":54555,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26313:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26316:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26313:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26313:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54553,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26291:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26308:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26291: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":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26291:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26275:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54561,"nodeType":"ExpressionStatement","src":"26275:51:91"},{"expression":{"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54562,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26337:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26363: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":54565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26349: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":54563,"name":"address","nodeType":"ElementaryTypeName","src":"26353:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54564,"nodeType":"ArrayTypeName","src":"26353:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26349:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26337:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54569,"nodeType":"ExpressionStatement","src":"26337:28:91"},{"expression":{"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54570,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26375:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54572,"indexExpression":{"hexValue":"30","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26385: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":"26375:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26398: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":54573,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26390:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26393:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26390:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26390:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26375:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54578,"nodeType":"ExpressionStatement","src":"26375:27:91"},{"expression":{"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54579,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54581,"indexExpression":{"hexValue":"31","id":54580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422: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":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435: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":54582,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54583,"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":54585,"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":54587,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54590,"indexExpression":{"hexValue":"32","id":54589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459: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":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472: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":54591,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54592,"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":54594,"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":54596,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"assignments":[54601],"declarations":[{"constant":false,"id":54601,"mutability":"mutable","name":"weights","nameLocation":"26504:7:91","nodeType":"VariableDeclaration","scope":54681,"src":"26487:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26487:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54600,"nodeType":"ArrayTypeName","src":"26487:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54607,"initialValue":{"arguments":[{"hexValue":"33","id":54605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26528: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":54604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26514: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":54602,"name":"uint256","nodeType":"ElementaryTypeName","src":"26518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54603,"nodeType":"ArrayTypeName","src":"26518:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26514:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26487:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26557: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":54611,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26549:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26552:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26549:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26549:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26563: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":54608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26541:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26544:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26541:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26541:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54617,"nodeType":"ExpressionStatement","src":"26541:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26591: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":54621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26583:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26586:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26583:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26583:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26597: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":54618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26575:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26575:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26575:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54627,"nodeType":"ExpressionStatement","src":"26575:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26625: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":54631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26617:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26620:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26617:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26617:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26631: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":54628,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26609:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26612:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26609:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26609:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54637,"nodeType":"ExpressionStatement","src":"26609:24:91"},{"expression":{"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54638,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26644:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54640,"indexExpression":{"hexValue":"30","id":54639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26652: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":"26644:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26657:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26644:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54643,"nodeType":"ExpressionStatement","src":"26644:16:91"},{"expression":{"id":54648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54644,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26670:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54646,"indexExpression":{"hexValue":"31","id":54645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26678: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":"26670:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26683:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26670:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54649,"nodeType":"ExpressionStatement","src":"26670:16:91"},{"expression":{"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54650,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26696:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54652,"indexExpression":{"hexValue":"32","id":54651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26704: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":"26696:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26709:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54655,"nodeType":"ExpressionStatement","src":"26696:16:91"},{"assignments":[54658],"declarations":[{"constant":false,"id":54658,"mutability":"mutable","name":"finality","nameLocation":"26745:8:91","nodeType":"VariableDeclaration","scope":54681,"src":"26723:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54657,"nodeType":"UserDefinedTypeName","pathNode":{"id":54656,"name":"ParentFinality","nameLocations":["26723:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26723:14:91"},"referencedDeclaration":49871,"src":"26723:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54667,"initialValue":{"arguments":[{"expression":{"id":54660,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26780:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26786:6:91","memberName":"number","nodeType":"MemberAccess","src":"26780:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26813: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":54663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26805:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26805:7:91","typeDescriptions":{}}},"id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26805:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54659,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26756:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26772:6:91","26794:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26756:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26723:94:91"},{"expression":{"arguments":[{"expression":{"id":54671,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26837:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26848:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26837:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54668,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26828:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26828:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26828:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54674,"nodeType":"ExpressionStatement","src":"26828:33:91"},{"expression":{"arguments":[{"id":54678,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54658,"src":"26915: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":54675,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"26871:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26894:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26871: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":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26871:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54680,"nodeType":"ExpressionStatement","src":"26871:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26007:15:91","parameters":{"id":54508,"nodeType":"ParameterList","parameters":[],"src":"26022:2:91"},"returnParameters":{"id":54516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54512,"mutability":"mutable","name":"validators","nameLocation":"26061:10:91","nodeType":"VariableDeclaration","scope":54682,"src":"26041: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":54510,"nodeType":"UserDefinedTypeName","pathNode":{"id":54509,"name":"FvmAddress","nameLocations":["26041:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26041:10:91"},"referencedDeclaration":49951,"src":"26041:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54511,"nodeType":"ArrayTypeName","src":"26041:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54515,"mutability":"mutable","name":"addresses","nameLocation":"26090:9:91","nodeType":"VariableDeclaration","scope":54682,"src":"26073:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54513,"name":"address","nodeType":"ElementaryTypeName","src":"26073:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"nodeType":"ArrayTypeName","src":"26073:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26040:60:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54775,"nodeType":"FunctionDefinition","src":"26937:1297:91","nodes":[],"body":{"id":54774,"nodeType":"Block","src":"27021:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54692,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"27046:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54693,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27073:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54691,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55582,"src":"27031:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27031:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54695,"nodeType":"ExpressionStatement","src":"27031:46:91"},{"assignments":[54698],"declarations":[{"constant":false,"id":54698,"mutability":"mutable","name":"crossMsg","nameLocation":"27104:8:91","nodeType":"VariableDeclaration","scope":54774,"src":"27088:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54697,"nodeType":"UserDefinedTypeName","pathNode":{"id":54696,"name":"CrossMsg","nameLocations":["27088:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27088:8:91"},"referencedDeclaration":49927,"src":"27088:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54738,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54706,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27267:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54702,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27226:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27235:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27226:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27252:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27226: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":54707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54710,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27330:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54708,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27308:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27325:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27308: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":54711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308: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":54701,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27183:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27216:8:91","27296:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27183:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54718,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27462:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54714,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27421:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27430:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27421:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27447:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27421: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":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54722,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27522:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54720,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27500:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27517:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27500: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":54723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27500: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":54713,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27378:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27411:8:91","27488:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27378:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54725,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27570:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27594:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27570:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54729,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27647:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27694: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":54731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27684:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54730,"name":"bytes","nodeType":"ElementaryTypeName","src":"27688:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27684:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54734,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27719: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":54700,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27147:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27177:4:91","27374:2:91","27563:5:91","27613:5:91","27639:6:91","27676:6:91","27714:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27147:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27778: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":54699,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27138:7:91","27769:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27115:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27088:706:91"},{"assignments":[54743],"declarations":[{"constant":false,"id":54743,"mutability":"mutable","name":"msgs","nameLocation":"27822:4:91","nodeType":"VariableDeclaration","scope":54774,"src":"27804: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":54741,"nodeType":"UserDefinedTypeName","pathNode":{"id":54740,"name":"CrossMsg","nameLocations":["27804:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27804:8:91"},"referencedDeclaration":49927,"src":"27804:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54742,"nodeType":"ArrayTypeName","src":"27804:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54750,"initialValue":{"arguments":[{"hexValue":"31","id":54748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844: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":54747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27829: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":54745,"nodeType":"UserDefinedTypeName","pathNode":{"id":54744,"name":"CrossMsg","nameLocations":["27833:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27833:8:91"},"referencedDeclaration":49927,"src":"27833:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54746,"nodeType":"ArrayTypeName","src":"27833:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27829: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":"27804:42:91"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"27856:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54753,"indexExpression":{"hexValue":"30","id":54752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27861: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":"27856:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"27866:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27856:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54756,"nodeType":"ExpressionStatement","src":"27856:18:91"},{"expression":{"arguments":[{"expression":{"id":54760,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28113:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28124:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28113:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54757,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28104:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28107:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28104:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28104:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54763,"nodeType":"ExpressionStatement","src":"28104:33:91"},{"expression":{"arguments":[{"id":54767,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"28187: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":54764,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"28147:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28168:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28147: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":54768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28147:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54769,"nodeType":"ExpressionStatement","src":"28147:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54770,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"28210:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28219:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28210: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":54772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28210:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54690,"id":54773,"nodeType":"Return","src":"28203:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26946:20:91","parameters":{"id":54687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54684,"mutability":"mutable","name":"caller","nameLocation":"26975:6:91","nodeType":"VariableDeclaration","scope":54775,"src":"26967:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54683,"name":"address","nodeType":"ElementaryTypeName","src":"26967:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54686,"mutability":"mutable","name":"src","nameLocation":"26991:3:91","nodeType":"VariableDeclaration","scope":54775,"src":"26983:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54685,"name":"address","nodeType":"ElementaryTypeName","src":"26983:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26966:29:91"},"returnParameters":{"id":54690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54775,"src":"27012:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27012:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27011:9:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54786,"nodeType":"FunctionDefinition","src":"28240:93:91","nodes":[],"body":{"id":54785,"nodeType":"Block","src":"28288:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54781,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54777,"src":"28311:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28322: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":54780,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"28298:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28298:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54784,"nodeType":"ExpressionStatement","src":"28298:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28249:12:91","parameters":{"id":54778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54777,"mutability":"mutable","name":"validator","nameLocation":"28270:9:91","nodeType":"VariableDeclaration","scope":54786,"src":"28262:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54776,"name":"address","nodeType":"ElementaryTypeName","src":"28262:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28261:19:91"},"returnParameters":{"id":54779,"nodeType":"ParameterList","parameters":[],"src":"28288:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54869,"nodeType":"FunctionDefinition","src":"28339:610:91","nodes":[],"body":{"id":54868,"nodeType":"Block","src":"28403:546:91","nodes":[],"statements":[{"assignments":[54797],"declarations":[{"constant":false,"id":54797,"mutability":"mutable","name":"validators","nameLocation":"28433:10:91","nodeType":"VariableDeclaration","scope":54868,"src":"28413: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":54795,"nodeType":"UserDefinedTypeName","pathNode":{"id":54794,"name":"FvmAddress","nameLocations":["28413:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28413:10:91"},"referencedDeclaration":49951,"src":"28413:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54796,"nodeType":"ArrayTypeName","src":"28413:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54804,"initialValue":{"arguments":[{"hexValue":"31","id":54802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28463: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":54801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28446: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":54799,"nodeType":"UserDefinedTypeName","pathNode":{"id":54798,"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":54800,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28446: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":"28413:52:91"},{"expression":{"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54805,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54797,"src":"28475:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54807,"indexExpression":{"hexValue":"30","id":54806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28486: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":"28475:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54810,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28513:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54808,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28491:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28508:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28491: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":54811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28491:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28475:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54813,"nodeType":"ExpressionStatement","src":"28475:48:91"},{"assignments":[54818],"declarations":[{"constant":false,"id":54818,"mutability":"mutable","name":"weights","nameLocation":"28550:7:91","nodeType":"VariableDeclaration","scope":54868,"src":"28533:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54816,"name":"uint256","nodeType":"ElementaryTypeName","src":"28533:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54817,"nodeType":"ArrayTypeName","src":"28533:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54824,"initialValue":{"arguments":[{"hexValue":"31","id":54822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28574: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":54821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28560: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":54819,"name":"uint256","nodeType":"ElementaryTypeName","src":"28564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54820,"nodeType":"ArrayTypeName","src":"28564:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28560:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28533:43:91"},{"expression":{"id":54829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54825,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"28586:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54827,"indexExpression":{"hexValue":"30","id":54826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28594: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":"28586:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54828,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"28599:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28586:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54830,"nodeType":"ExpressionStatement","src":"28586:19:91"},{"expression":{"arguments":[{"id":54834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28624:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28635: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":54831,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28616:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28619:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28616:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28616:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54837,"nodeType":"ExpressionStatement","src":"28616:21:91"},{"assignments":[54840],"declarations":[{"constant":false,"id":54840,"mutability":"mutable","name":"finality","nameLocation":"28669:8:91","nodeType":"VariableDeclaration","scope":54868,"src":"28647:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54839,"nodeType":"UserDefinedTypeName","pathNode":{"id":54838,"name":"ParentFinality","nameLocations":["28647:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28647:14:91"},"referencedDeclaration":49871,"src":"28647:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54849,"initialValue":{"arguments":[{"expression":{"id":54842,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28704:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28710:6:91","memberName":"number","nodeType":"MemberAccess","src":"28704:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28737: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":54845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28729:7:91","typeDescriptions":{}}},"id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54841,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28680:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:6:91","28718:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28680:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28647:94:91"},{"expression":{"arguments":[{"expression":{"id":54853,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28831:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28842:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28831:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54850,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28817:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28820:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28817:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28817:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54856,"nodeType":"ExpressionStatement","src":"28817:38:91"},{"expression":{"arguments":[{"id":54860,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54840,"src":"28909: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":54857,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"28865:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28888:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28865: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":54861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28865:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54862,"nodeType":"ExpressionStatement","src":"28865:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28928:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28931:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28928:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28928:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54867,"nodeType":"ExpressionStatement","src":"28928:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28348:12:91","parameters":{"id":54791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54788,"mutability":"mutable","name":"validator","nameLocation":"28369:9:91","nodeType":"VariableDeclaration","scope":54869,"src":"28361:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54787,"name":"address","nodeType":"ElementaryTypeName","src":"28361:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54790,"mutability":"mutable","name":"weight","nameLocation":"28388:6:91","nodeType":"VariableDeclaration","scope":54869,"src":"28380:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54789,"name":"uint256","nodeType":"ElementaryTypeName","src":"28380:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28360:35:91"},"returnParameters":{"id":54792,"nodeType":"ParameterList","parameters":[],"src":"28403:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54882,"nodeType":"FunctionDefinition","src":"28955:112:91","nodes":[],"body":{"id":54881,"nodeType":"Block","src":"28999:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29021:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"29053: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":54874,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29009:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29017:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29009:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29009:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54880,"nodeType":"ExpressionStatement","src":"29009:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"28964:6:91","parameters":{"id":54872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54871,"mutability":"mutable","name":"amount","nameLocation":"28979:6:91","nodeType":"VariableDeclaration","scope":54882,"src":"28971:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"28971:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28970:16:91"},"returnParameters":{"id":54873,"nodeType":"ParameterList","parameters":[],"src":"28999:0:91"},"scope":55675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54897,"nodeType":"FunctionDefinition","src":"29073:131:91","nodes":[],"body":{"id":54896,"nodeType":"Block","src":"29137:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54890,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54884,"src":"29152:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54891,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54886,"src":"29167:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54892,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29179:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29190:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29179: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":54889,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54897,55022],"referencedDeclaration":55022,"src":"29147:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29147:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54895,"nodeType":"ExpressionStatement","src":"29147:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29082:4:91","parameters":{"id":54887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54884,"mutability":"mutable","name":"funderAddress","nameLocation":"29095:13:91","nodeType":"VariableDeclaration","scope":54897,"src":"29087:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"29087:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54886,"mutability":"mutable","name":"fundAmount","nameLocation":"29118:10:91","nodeType":"VariableDeclaration","scope":54897,"src":"29110:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54885,"name":"uint256","nodeType":"ElementaryTypeName","src":"29110:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29086:43:91"},"returnParameters":{"id":54888,"nodeType":"ParameterList","parameters":[],"src":"29137:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55022,"nodeType":"FunctionDefinition","src":"29210:1180:91","nodes":[],"body":{"id":55021,"nodeType":"Block","src":"29291:1099:91","nodes":[],"statements":[{"assignments":[54909,null,54911,null,54913],"declarations":[{"constant":false,"id":54909,"mutability":"mutable","name":"subnetId","nameLocation":"29383:8:91","nodeType":"VariableDeclaration","scope":55021,"src":"29367:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54908,"nodeType":"UserDefinedTypeName","pathNode":{"id":54907,"name":"SubnetID","nameLocations":["29367:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29367:8:91"},"referencedDeclaration":50030,"src":"29367:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54911,"mutability":"mutable","name":"nonceBefore","nameLocation":"29403:11:91","nodeType":"VariableDeclaration","scope":55021,"src":"29395:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54910,"name":"uint256","nodeType":"ElementaryTypeName","src":"29395:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54913,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29426:16:91","nodeType":"VariableDeclaration","scope":55021,"src":"29418:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"29418:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54920,"initialValue":{"arguments":[{"arguments":[{"id":54917,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"29464:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29456:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54915,"name":"address","nodeType":"ElementaryTypeName","src":"29456:7:91","typeDescriptions":{}}},"id":54918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54914,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"29446: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":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29446: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":"29366:109:91"},{"assignments":[54922],"declarations":[{"constant":false,"id":54922,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29494:25:91","nodeType":"VariableDeclaration","scope":55021,"src":"29486:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54921,"name":"uint256","nodeType":"ElementaryTypeName","src":"29486:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54929,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54925,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29558: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":54923,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29522:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29531:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29522: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":54926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29522:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29570:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29522:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29486:85:91"},{"assignments":[54931],"declarations":[{"constant":false,"id":54931,"mutability":"mutable","name":"expectedNonce","nameLocation":"29589:13:91","nodeType":"VariableDeclaration","scope":55021,"src":"29581:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54930,"name":"uint256","nodeType":"ElementaryTypeName","src":"29581:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54935,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54932,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"29605:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29619:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29605:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29581:39:91"},{"assignments":[54937],"declarations":[{"constant":false,"id":54937,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29638:18:91","nodeType":"VariableDeclaration","scope":55021,"src":"29630:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54936,"name":"uint256","nodeType":"ElementaryTypeName","src":"29630:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54941,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54938,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54913,"src":"29659:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54939,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29678:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29659:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29630:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54943,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29707:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29716:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29707:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29707:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29707:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29735: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":54942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29699:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29699:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54950,"nodeType":"ExpressionStatement","src":"29699:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54951,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29769:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54952,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29777:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29788:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29777:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29769:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54968,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29912:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54969,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29920:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29931:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29920:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29912:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54984,"nodeType":"IfStatement","src":"29908:138:91","trueBody":{"id":54983,"nodeType":"Block","src":"29938:108:91","statements":[{"expression":{"arguments":[{"id":54975,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29976:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54978,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"30008:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54976,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29986:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30003:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29986: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":54979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29986:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54980,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"30024: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":54972,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29952:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29962:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29952: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":54981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29952:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54982,"nodeType":"ExpressionStatement","src":"29952:83:91"}]}},"id":54985,"nodeType":"IfStatement","src":"29765:281:91","trueBody":{"id":54967,"nodeType":"Block","src":"29796:106:91","statements":[{"expression":{"arguments":[{"id":54960,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29844:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54963,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"29876:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54961,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29854:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29871:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29854: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":54964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29854: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":54955,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29810:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29820:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29810: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":54959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54958,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29832:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29810: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":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54966,"nodeType":"ExpressionStatement","src":"29810:81:91"}]}},{"assignments":[null,null,54987,null,54989],"declarations":[null,null,{"constant":false,"id":54987,"mutability":"mutable","name":"nonce","nameLocation":"30069:5:91","nodeType":"VariableDeclaration","scope":55021,"src":"30061:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54986,"name":"uint256","nodeType":"ElementaryTypeName","src":"30061:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54989,"mutability":"mutable","name":"circSupply","nameLocation":"30086:10:91","nodeType":"VariableDeclaration","scope":55021,"src":"30078:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54988,"name":"uint256","nodeType":"ElementaryTypeName","src":"30078:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54996,"initialValue":{"arguments":[{"arguments":[{"id":54993,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30118:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30110:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"30110:7:91","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30110:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54990,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"30100: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":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30100: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":"30056:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55000,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"30184: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":54998,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"30148:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30157:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30148: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":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30148:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55002,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54922,"src":"30197:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30148:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30224: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":54997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30140:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30140:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55006,"nodeType":"ExpressionStatement","src":"30140:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55008,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54987,"src":"30264:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55009,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54931,"src":"30273:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30264:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30288: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":55007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30256:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30256:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55013,"nodeType":"ExpressionStatement","src":"30256:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55015,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54989,"src":"30325:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55016,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54937,"src":"30339:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30325:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30359: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":55014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30317:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30317:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55020,"nodeType":"ExpressionStatement","src":"30317:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29219:4:91","parameters":{"id":54905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54899,"mutability":"mutable","name":"funderAddress","nameLocation":"29232:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29224:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54898,"name":"address","nodeType":"ElementaryTypeName","src":"29224:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54901,"mutability":"mutable","name":"fundAmount","nameLocation":"29255:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"29247:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54900,"name":"uint256","nodeType":"ElementaryTypeName","src":"29247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54904,"mutability":"mutable","name":"mode","nameLocation":"29278:4:91","nodeType":"VariableDeclaration","scope":55022,"src":"29267:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54903,"nodeType":"UserDefinedTypeName","pathNode":{"id":54902,"name":"SupplyKind","nameLocations":["29267:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29267:10:91"},"referencedDeclaration":50182,"src":"29267:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29223:60:91"},"returnParameters":{"id":54906,"nodeType":"ParameterList","parameters":[],"src":"29291:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55053,"nodeType":"FunctionDefinition","src":"30396:243:91","nodes":[],"body":{"id":55052,"nodeType":"Block","src":"30464:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55032,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30483:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30474:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30477:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30474:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30474:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55034,"nodeType":"ExpressionStatement","src":"30474:26:91"},{"expression":{"arguments":[{"id":55038,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30518:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55039,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30536:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30536:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55035,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30510:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30513:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30510:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30510:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55043,"nodeType":"ExpressionStatement","src":"30510:56:91"},{"expression":{"arguments":[{"id":55049,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"30625: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":55044,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30576:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30586:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30576:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55047,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30598:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30576:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30576:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55051,"nodeType":"ExpressionStatement","src":"30576:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30405:4:91","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55024,"mutability":"mutable","name":"validatorAddress","nameLocation":"30418:16:91","nodeType":"VariableDeclaration","scope":55053,"src":"30410:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55023,"name":"address","nodeType":"ElementaryTypeName","src":"30410:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55026,"mutability":"mutable","name":"pubkey","nameLocation":"30449:6:91","nodeType":"VariableDeclaration","scope":55053,"src":"30436:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55025,"name":"bytes","nodeType":"ElementaryTypeName","src":"30436:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30409:47:91"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[],"src":"30464:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55100,"nodeType":"FunctionDefinition","src":"30645:298:91","nodes":[],"body":{"id":55099,"nodeType":"Block","src":"30713:230:91","nodes":[],"statements":[{"assignments":[55064],"declarations":[{"constant":false,"id":55064,"mutability":"mutable","name":"validators","nameLocation":"30740:10:91","nodeType":"VariableDeclaration","scope":55099,"src":"30723:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55062,"name":"address","nodeType":"ElementaryTypeName","src":"30723:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55063,"nodeType":"ArrayTypeName","src":"30723:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55070,"initialValue":{"arguments":[{"hexValue":"31","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30767: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":55067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30753: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":55065,"name":"address","nodeType":"ElementaryTypeName","src":"30757:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55066,"nodeType":"ArrayTypeName","src":"30757:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30753:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30723:46:91"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55071,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30779:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55073,"indexExpression":{"hexValue":"30","id":55072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30790: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":"30779:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55055,"src":"30795:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30779:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55076,"nodeType":"ExpressionStatement","src":"30779:25:91"},{"assignments":[55081],"declarations":[{"constant":false,"id":55081,"mutability":"mutable","name":"privKeys","nameLocation":"30832:8:91","nodeType":"VariableDeclaration","scope":55099,"src":"30815:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55079,"name":"uint256","nodeType":"ElementaryTypeName","src":"30815:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55080,"nodeType":"ArrayTypeName","src":"30815:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55087,"initialValue":{"arguments":[{"hexValue":"31","id":55085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30857: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":55084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30843: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":55082,"name":"uint256","nodeType":"ElementaryTypeName","src":"30847:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55083,"nodeType":"ArrayTypeName","src":"30847:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30843:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30815:44:91"},{"expression":{"id":55092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55088,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30869:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55090,"indexExpression":{"hexValue":"30","id":55089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30878: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":"30869:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55091,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55057,"src":"30883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30869:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55093,"nodeType":"ExpressionStatement","src":"30869:21:91"},{"expression":{"arguments":[{"id":55095,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30915:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55096,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30927: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":55094,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"30901: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":55097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30901:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55098,"nodeType":"ExpressionStatement","src":"30901:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30654:13:91","parameters":{"id":55058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55055,"mutability":"mutable","name":"validator","nameLocation":"30676:9:91","nodeType":"VariableDeclaration","scope":55100,"src":"30668:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55054,"name":"address","nodeType":"ElementaryTypeName","src":"30668:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55057,"mutability":"mutable","name":"privKey","nameLocation":"30695:7:91","nodeType":"VariableDeclaration","scope":55100,"src":"30687:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55056,"name":"uint256","nodeType":"ElementaryTypeName","src":"30687:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30667:36:91"},"returnParameters":{"id":55059,"nodeType":"ParameterList","parameters":[],"src":"30713:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55163,"nodeType":"FunctionDefinition","src":"30949:408:91","nodes":[],"body":{"id":55162,"nodeType":"Block","src":"31057:300:91","nodes":[],"statements":[{"assignments":[55115],"declarations":[{"constant":false,"id":55115,"mutability":"mutable","name":"validators","nameLocation":"31084:10:91","nodeType":"VariableDeclaration","scope":55162,"src":"31067:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55113,"name":"address","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55114,"nodeType":"ArrayTypeName","src":"31067:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55121,"initialValue":{"arguments":[{"hexValue":"32","id":55119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31111: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":55118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31097: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":55116,"name":"address","nodeType":"ElementaryTypeName","src":"31101:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55117,"nodeType":"ArrayTypeName","src":"31101:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31097:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31067:46:91"},{"expression":{"id":55126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55122,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31123:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55124,"indexExpression":{"hexValue":"30","id":55123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31134: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":"31123:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55125,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55102,"src":"31139:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31123:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55127,"nodeType":"ExpressionStatement","src":"31123:26:91"},{"expression":{"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55128,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31159:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55130,"indexExpression":{"hexValue":"31","id":55129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31170: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":"31159:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55131,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55106,"src":"31175:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31159:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55133,"nodeType":"ExpressionStatement","src":"31159:26:91"},{"assignments":[55138],"declarations":[{"constant":false,"id":55138,"mutability":"mutable","name":"privKeys","nameLocation":"31213:8:91","nodeType":"VariableDeclaration","scope":55162,"src":"31196:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55136,"name":"uint256","nodeType":"ElementaryTypeName","src":"31196:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55137,"nodeType":"ArrayTypeName","src":"31196:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55144,"initialValue":{"arguments":[{"hexValue":"32","id":55142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31238: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":55141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31224: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":55139,"name":"uint256","nodeType":"ElementaryTypeName","src":"31228:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55140,"nodeType":"ArrayTypeName","src":"31228:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31224:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31196:44:91"},{"expression":{"id":55149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55145,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31250:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55147,"indexExpression":{"hexValue":"30","id":55146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31259: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":"31250:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55148,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55104,"src":"31264:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31250:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55150,"nodeType":"ExpressionStatement","src":"31250:22:91"},{"expression":{"id":55155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55151,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31282:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55153,"indexExpression":{"hexValue":"31","id":55152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31291: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":"31282:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55154,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55108,"src":"31296:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31282:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55156,"nodeType":"ExpressionStatement","src":"31282:22:91"},{"expression":{"arguments":[{"id":55158,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31329:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55159,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31341: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":55157,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31315: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":55160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31315:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55161,"nodeType":"ExpressionStatement","src":"31315:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30958:13:91","parameters":{"id":55109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55102,"mutability":"mutable","name":"validator1","nameLocation":"30980:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"30972:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55101,"name":"address","nodeType":"ElementaryTypeName","src":"30972:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55104,"mutability":"mutable","name":"privKey1","nameLocation":"31000:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"30992:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55103,"name":"uint256","nodeType":"ElementaryTypeName","src":"30992:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55106,"mutability":"mutable","name":"validator2","nameLocation":"31018:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31010:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55105,"name":"address","nodeType":"ElementaryTypeName","src":"31010:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55108,"mutability":"mutable","name":"privKey2","nameLocation":"31038:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31030:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55107,"name":"uint256","nodeType":"ElementaryTypeName","src":"31030:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30971:76:91"},"returnParameters":{"id":55110,"nodeType":"ParameterList","parameters":[],"src":"31057:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55242,"nodeType":"FunctionDefinition","src":"31363:568:91","nodes":[],"body":{"id":55241,"nodeType":"Block","src":"31563:368:91","nodes":[],"statements":[{"assignments":[55182],"declarations":[{"constant":false,"id":55182,"mutability":"mutable","name":"validators","nameLocation":"31590:10:91","nodeType":"VariableDeclaration","scope":55241,"src":"31573:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55180,"name":"address","nodeType":"ElementaryTypeName","src":"31573:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55181,"nodeType":"ArrayTypeName","src":"31573:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55188,"initialValue":{"arguments":[{"hexValue":"33","id":55186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31617: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":55185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31603: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":55183,"name":"address","nodeType":"ElementaryTypeName","src":"31607:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55184,"nodeType":"ArrayTypeName","src":"31607:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31573:46:91"},{"expression":{"id":55193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55189,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31629:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55191,"indexExpression":{"hexValue":"30","id":55190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31640: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":"31629:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55192,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55165,"src":"31645:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31629:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55194,"nodeType":"ExpressionStatement","src":"31629:26:91"},{"expression":{"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55195,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31665:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55197,"indexExpression":{"hexValue":"31","id":55196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31676: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":"31665:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55198,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55169,"src":"31681:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31665:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55200,"nodeType":"ExpressionStatement","src":"31665:26:91"},{"expression":{"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55201,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31701:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55203,"indexExpression":{"hexValue":"32","id":55202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31712: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":"31701:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55204,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55173,"src":"31717:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31701:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55206,"nodeType":"ExpressionStatement","src":"31701:26:91"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"privKeys","nameLocation":"31755:8:91","nodeType":"VariableDeclaration","scope":55241,"src":"31738:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55209,"name":"uint256","nodeType":"ElementaryTypeName","src":"31738:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55210,"nodeType":"ArrayTypeName","src":"31738:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55217,"initialValue":{"arguments":[{"hexValue":"33","id":55215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31780: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":55214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31766: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":55212,"name":"uint256","nodeType":"ElementaryTypeName","src":"31770:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55213,"nodeType":"ArrayTypeName","src":"31770:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31766:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31738:44:91"},{"expression":{"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55218,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31792:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55220,"indexExpression":{"hexValue":"30","id":55219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31801: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":"31792:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55221,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55167,"src":"31806:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31792:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55223,"nodeType":"ExpressionStatement","src":"31792:22:91"},{"expression":{"id":55228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55224,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31824:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55226,"indexExpression":{"hexValue":"31","id":55225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31833: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":"31824:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55227,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55171,"src":"31838:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31824:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55229,"nodeType":"ExpressionStatement","src":"31824:22:91"},{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55230,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31856:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55232,"indexExpression":{"hexValue":"32","id":55231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31865: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":"31856:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55233,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55175,"src":"31870:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31856:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55235,"nodeType":"ExpressionStatement","src":"31856:22:91"},{"expression":{"arguments":[{"id":55237,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31903:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55238,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31915: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":55236,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31889: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":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31889:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55240,"nodeType":"ExpressionStatement","src":"31889:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31372:13:91","parameters":{"id":55176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55165,"mutability":"mutable","name":"validator1","nameLocation":"31403:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31395:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55164,"name":"address","nodeType":"ElementaryTypeName","src":"31395:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55167,"mutability":"mutable","name":"privKey1","nameLocation":"31431:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31423:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55166,"name":"uint256","nodeType":"ElementaryTypeName","src":"31423:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55169,"mutability":"mutable","name":"validator2","nameLocation":"31457:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31449:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55168,"name":"address","nodeType":"ElementaryTypeName","src":"31449:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55171,"mutability":"mutable","name":"privKey2","nameLocation":"31485:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31477:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55170,"name":"uint256","nodeType":"ElementaryTypeName","src":"31477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55173,"mutability":"mutable","name":"validator3","nameLocation":"31511:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31503:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55172,"name":"address","nodeType":"ElementaryTypeName","src":"31503:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55175,"mutability":"mutable","name":"privKey3","nameLocation":"31539:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31531:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55174,"name":"uint256","nodeType":"ElementaryTypeName","src":"31531:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31385:168:91"},"returnParameters":{"id":55177,"nodeType":"ParameterList","parameters":[],"src":"31563:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55393,"nodeType":"FunctionDefinition","src":"31937:1107:91","nodes":[],"body":{"id":55392,"nodeType":"Block","src":"32025:1019:91","nodes":[],"statements":[{"assignments":[55252],"declarations":[{"constant":false,"id":55252,"mutability":"mutable","name":"n","nameLocation":"32043:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32035:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55251,"name":"uint256","nodeType":"ElementaryTypeName","src":"32035:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55255,"initialValue":{"expression":{"id":55253,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32047:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32058:6:91","memberName":"length","nodeType":"MemberAccess","src":"32047:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32035:29:91"},{"assignments":[55260],"declarations":[{"constant":false,"id":55260,"mutability":"mutable","name":"signatures","nameLocation":"32090:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32075:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55258,"name":"bytes","nodeType":"ElementaryTypeName","src":"32075:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55259,"nodeType":"ArrayTypeName","src":"32075:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55266,"initialValue":{"arguments":[{"id":55264,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32115:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32103: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":55261,"name":"bytes","nodeType":"ElementaryTypeName","src":"32107:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55262,"nodeType":"ArrayTypeName","src":"32107:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32103:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32075:42:91"},{"assignments":[55268,null],"declarations":[{"constant":false,"id":55268,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32136:13:91","nodeType":"VariableDeclaration","scope":55392,"src":"32129:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55267,"name":"uint64","nodeType":"ElementaryTypeName","src":"32129:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32155:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32164:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32155:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32155:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32128:61:91"},{"assignments":[55274],"declarations":[{"constant":false,"id":55274,"mutability":"mutable","name":"h","nameLocation":"32208:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32200:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55273,"name":"uint256","nodeType":"ElementaryTypeName","src":"32200:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55282,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55275,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32212:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32221:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32212:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32212:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55278,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32254:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32263:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32254:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32254:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32212:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32200:84:91"},{"assignments":[55285],"declarations":[{"constant":false,"id":55285,"mutability":"mutable","name":"checkpoint","nameLocation":"32321:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32295:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55284,"nodeType":"UserDefinedTypeName","pathNode":{"id":55283,"name":"BottomUpCheckpoint","nameLocations":["32295:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32295:18:91"},"referencedDeclaration":49885,"src":"32295:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55307,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55293,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32421:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32413:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55291,"name":"address","nodeType":"ElementaryTypeName","src":"32413:7:91","typeDescriptions":{}}},"id":55294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32413:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55287,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32377:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32386:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32377:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32398:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32377: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":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55296,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32459:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55300,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32506:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32495:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32499:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32495:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32495:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55297,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32485:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32485:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55303,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"32548:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32548: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":55286,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32334:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32367:8:91","32446:11:91","32474:9:91","32523:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32334:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32295:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55313,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32603:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32595:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55311,"name":"address","nodeType":"ElementaryTypeName","src":"32595:7:91","typeDescriptions":{}}},"id":55314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32595:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32615: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":55308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32587:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32590:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32587:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32587:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55317,"nodeType":"ExpressionStatement","src":"32587:38:91"},{"assignments":[55319],"declarations":[{"constant":false,"id":55319,"mutability":"mutable","name":"hash","nameLocation":"32644:4:91","nodeType":"VariableDeclaration","scope":55392,"src":"32636:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32636:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55326,"initialValue":{"arguments":[{"arguments":[{"id":55323,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32672: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":55321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32661:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32665:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32661:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32661:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55320,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32651:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32651:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32636:48:91"},{"body":{"id":55362,"nodeType":"Block","src":"32727:140:91","statements":[{"assignments":[55338,55340,55342],"declarations":[{"constant":false,"id":55338,"mutability":"mutable","name":"v","nameLocation":"32748:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32742:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55337,"name":"uint8","nodeType":"ElementaryTypeName","src":"32742:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55340,"mutability":"mutable","name":"r","nameLocation":"32759:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32751:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32751:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55342,"mutability":"mutable","name":"s","nameLocation":"32770:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32762:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32762:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55350,"initialValue":{"arguments":[{"baseExpression":{"id":55345,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55248,"src":"32783:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55347,"indexExpression":{"id":55346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32792:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32783:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55348,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55319,"src":"32796:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55343,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32775:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32778:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32775: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":55349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32775:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32741:60:91"},{"expression":{"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55351,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"32815:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55353,"indexExpression":{"id":55352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32826:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32815:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55356,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"32848:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55342,"src":"32851:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"32854: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":55354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32831:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32835:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32831:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32831:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32815:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55361,"nodeType":"ExpressionStatement","src":"32815:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32715:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55332,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32719:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32715:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55363,"initializationExpression":{"assignments":[55328],"declarations":[{"constant":false,"id":55328,"mutability":"mutable","name":"i","nameLocation":"32708:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32700:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55327,"name":"uint256","nodeType":"ElementaryTypeName","src":"32700:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55330,"initialValue":{"hexValue":"30","id":55329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32712:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32700:13:91"},"loopExpression":{"expression":{"id":55335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32722:3:91","subExpression":{"id":55334,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55336,"nodeType":"ExpressionStatement","src":"32722:3:91"},"nodeType":"ForStatement","src":"32695:172:91"},{"body":{"id":55390,"nodeType":"Block","src":"32909:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55377,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32932:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55379,"indexExpression":{"id":55378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32943:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32932:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55374,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32923:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32926:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32923:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32923:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55381,"nodeType":"ExpressionStatement","src":"32923:23:91"},{"expression":{"arguments":[{"id":55385,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32992:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55386,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"33004:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55387,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"33016: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":55382,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"32960:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32975:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32960: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":55388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55389,"nodeType":"ExpressionStatement","src":"32960:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32897:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55369,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32901:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32897:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55391,"initializationExpression":{"assignments":[55365],"declarations":[{"constant":false,"id":55365,"mutability":"mutable","name":"i","nameLocation":"32890:1:91","nodeType":"VariableDeclaration","scope":55391,"src":"32882:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55364,"name":"uint256","nodeType":"ElementaryTypeName","src":"32882:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55367,"initialValue":{"hexValue":"30","id":55366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32882:13:91"},"loopExpression":{"expression":{"id":55372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32904:3:91","subExpression":{"id":55371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32904:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55373,"nodeType":"ExpressionStatement","src":"32904:3:91"},"nodeType":"ForStatement","src":"32877:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31946:13:91","parameters":{"id":55249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55245,"mutability":"mutable","name":"validators","nameLocation":"31977:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"31960:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55243,"name":"address","nodeType":"ElementaryTypeName","src":"31960:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55244,"nodeType":"ArrayTypeName","src":"31960:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55248,"mutability":"mutable","name":"privKeys","nameLocation":"32006:8:91","nodeType":"VariableDeclaration","scope":55393,"src":"31989:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55246,"name":"uint256","nodeType":"ElementaryTypeName","src":"31989:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55247,"nodeType":"ArrayTypeName","src":"31989:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31959:56:91"},"returnParameters":{"id":55250,"nodeType":"ParameterList","parameters":[],"src":"32025:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55428,"nodeType":"FunctionDefinition","src":"33050:305:91","nodes":[],"body":{"id":55427,"nodeType":"Block","src":"33097:258:91","nodes":[],"statements":[{"assignments":[55399],"declarations":[{"constant":false,"id":55399,"mutability":"mutable","name":"expectedNonce","nameLocation":"33115:13:91","nodeType":"VariableDeclaration","scope":55427,"src":"33107:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55398,"name":"uint256","nodeType":"ElementaryTypeName","src":"33107:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55405,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55400,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33131:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33140:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33131:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33131:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33158:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33131:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33107:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55413,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33231:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33235:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33231:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55411,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33209:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33226:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33209: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":55415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33209: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":55406,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33169:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33179:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33169:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55409,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55395,"src":"33194:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33169:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33169:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55417,"nodeType":"ExpressionStatement","src":"33169:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55419,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33261:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33270:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33261:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33261:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55422,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55399,"src":"33289:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33261:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33304: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":55418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33253:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33253:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55426,"nodeType":"ExpressionStatement","src":"33253:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33059:7:91","parameters":{"id":55396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55395,"mutability":"mutable","name":"releaseAmount","nameLocation":"33075:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33067:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55394,"name":"uint256","nodeType":"ElementaryTypeName","src":"33067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33066:23:91"},"returnParameters":{"id":55397,"nodeType":"ParameterList","parameters":[],"src":"33097:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55483,"nodeType":"FunctionDefinition","src":"33361:536:91","nodes":[],"body":{"id":55482,"nodeType":"Block","src":"33430:467:91","nodes":[],"statements":[{"assignments":[55436],"declarations":[{"constant":false,"id":55436,"mutability":"mutable","name":"balanceBefore","nameLocation":"33448:13:91","nodeType":"VariableDeclaration","scope":55482,"src":"33440:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55435,"name":"uint256","nodeType":"ElementaryTypeName","src":"33440:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55439,"initialValue":{"expression":{"id":55437,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33464:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33478:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33464:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33440:45:91"},{"assignments":[null,55441,null,null,null],"declarations":[null,{"constant":false,"id":55441,"mutability":"mutable","name":"stakedBefore","nameLocation":"33507:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33499:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55440,"name":"uint256","nodeType":"ElementaryTypeName","src":"33499:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55445,"initialValue":{"arguments":[{"id":55443,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33539:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55442,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33529: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":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33529: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":"33496:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55446,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33564:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33574:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33564:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55449,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33590:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33564:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33564:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"33564:40:91"},{"assignments":[55454],"declarations":[{"constant":false,"id":55454,"mutability":"mutable","name":"balanceAfter","nameLocation":"33623:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33615:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55453,"name":"uint256","nodeType":"ElementaryTypeName","src":"33615:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55457,"initialValue":{"expression":{"id":55455,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33638:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33652:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33638:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33615:44:91"},{"assignments":[null,55459,null,null,null],"declarations":[null,{"constant":false,"id":55459,"mutability":"mutable","name":"stakedAfter","nameLocation":"33680:11:91","nodeType":"VariableDeclaration","scope":55482,"src":"33672:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55458,"name":"uint256","nodeType":"ElementaryTypeName","src":"33672:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55463,"initialValue":{"arguments":[{"id":55461,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33711:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55460,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33701: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":55462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33701: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":"33669:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55465,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55454,"src":"33744:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55436,"src":"33760:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55467,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33776:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33760:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33744:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33789: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":55464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33736:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55472,"nodeType":"ExpressionStatement","src":"33736:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55474,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55459,"src":"33828:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"33843:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55476,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33858:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33843:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33828:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33871: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":55473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33820:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33820:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55481,"nodeType":"ExpressionStatement","src":"33820:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33370:8:91","parameters":{"id":55433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55430,"mutability":"mutable","name":"stakeAmount","nameLocation":"33387:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33379:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55429,"name":"uint256","nodeType":"ElementaryTypeName","src":"33379:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55432,"mutability":"mutable","name":"subnetAddress","nameLocation":"33408:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33400:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55431,"name":"address","nodeType":"ElementaryTypeName","src":"33400:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33378:44:91"},"returnParameters":{"id":55434,"nodeType":"ParameterList","parameters":[],"src":"33430:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55568,"nodeType":"FunctionDefinition","src":"33903:813:91","nodes":[],"body":{"id":55567,"nodeType":"Block","src":"33998:718:91","nodes":[],"statements":[{"assignments":[55495],"declarations":[{"constant":false,"id":55495,"mutability":"mutable","name":"manager","nameLocation":"34028:7:91","nodeType":"VariableDeclaration","scope":55567,"src":"34008:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55494,"nodeType":"UserDefinedTypeName","pathNode":{"id":55493,"name":"GatewayManagerFacet","nameLocations":["34008:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34008:19:91"},"referencedDeclaration":38870,"src":"34008:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55502,"initialValue":{"arguments":[{"arguments":[{"id":55499,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34066:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34058:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55497,"name":"address","nodeType":"ElementaryTypeName","src":"34058:7:91","typeDescriptions":{}}},"id":55500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34058:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55496,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34038:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34038:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34008:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34117: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":55503,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55495,"src":"34081:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34089:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34081:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55506,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34105:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34081:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55510,"nodeType":"ExpressionStatement","src":"34081:38:91"},{"assignments":[55513,55515,55517,null,55519],"declarations":[{"constant":false,"id":55513,"mutability":"mutable","name":"id","nameLocation":"34147:2:91","nodeType":"VariableDeclaration","scope":55567,"src":"34131:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55512,"nodeType":"UserDefinedTypeName","pathNode":{"id":55511,"name":"SubnetID","nameLocations":["34131:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34131:8:91"},"referencedDeclaration":50030,"src":"34131:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55515,"mutability":"mutable","name":"stake","nameLocation":"34159:5:91","nodeType":"VariableDeclaration","scope":55567,"src":"34151:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55514,"name":"uint256","nodeType":"ElementaryTypeName","src":"34151:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55517,"mutability":"mutable","name":"topDownNonce","nameLocation":"34174:12:91","nodeType":"VariableDeclaration","scope":55567,"src":"34166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55516,"name":"uint256","nodeType":"ElementaryTypeName","src":"34166:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55519,"mutability":"mutable","name":"circSupply","nameLocation":"34198:10:91","nodeType":"VariableDeclaration","scope":55567,"src":"34190:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55518,"name":"uint256","nodeType":"ElementaryTypeName","src":"34190:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55524,"initialValue":{"arguments":[{"id":55521,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34237:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55522,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34264: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":55520,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"34212: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":55523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34212: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":"34130:146:91"},{"assignments":[55527],"declarations":[{"constant":false,"id":55527,"mutability":"mutable","name":"parentNetwork","nameLocation":"34303:13:91","nodeType":"VariableDeclaration","scope":55567,"src":"34287:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55526,"nodeType":"UserDefinedTypeName","pathNode":{"id":55525,"name":"SubnetID","nameLocations":["34287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34287:8:91"},"referencedDeclaration":50030,"src":"34287:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55531,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55528,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"34319:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34328:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34319:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34319:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34287:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55533,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"34376:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34379:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34376: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":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34376:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55538,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34420:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55536,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"34391:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34405:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34391: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":55539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34435:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34391: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":55541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34376:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34457: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":55532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34355:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34355:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55545,"nodeType":"ExpressionStatement","src":"34355:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55547,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"34554:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55548,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34563:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34554:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34575: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":55546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34546:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34546:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55552,"nodeType":"ExpressionStatement","src":"34546:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55554,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55517,"src":"34612:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34628:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34612:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34631: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":55553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34604:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34604:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"34604:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55561,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55519,"src":"34668:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34682:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34668:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34685: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":55560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34660:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55566,"nodeType":"ExpressionStatement","src":"34660:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33912:16:91","parameters":{"id":55491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55485,"mutability":"mutable","name":"collateral","nameLocation":"33937:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"33929:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55484,"name":"uint256","nodeType":"ElementaryTypeName","src":"33929:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55487,"mutability":"mutable","name":"subnetAddress","nameLocation":"33957:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"33949:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55486,"name":"address","nodeType":"ElementaryTypeName","src":"33949:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55490,"mutability":"mutable","name":"gw","nameLocation":"33987:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"33972:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55489,"nodeType":"UserDefinedTypeName","pathNode":{"id":55488,"name":"GatewayDiamond","nameLocations":["33972:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"33972:14:91"},"referencedDeclaration":36170,"src":"33972:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33928:62:91"},"returnParameters":{"id":55492,"nodeType":"ParameterList","parameters":[],"src":"33998:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55582,"nodeType":"FunctionDefinition","src":"34722:150:91","nodes":[],"body":{"id":55581,"nodeType":"Block","src":"34796:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55576,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"34823:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55577,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"34835:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55578,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"34850: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":55575,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55568,"src":"34806:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34806:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55580,"nodeType":"ExpressionStatement","src":"34806:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34731:14:91","parameters":{"id":55573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55570,"mutability":"mutable","name":"collateral","nameLocation":"34754:10:91","nodeType":"VariableDeclaration","scope":55582,"src":"34746:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55569,"name":"uint256","nodeType":"ElementaryTypeName","src":"34746:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55572,"mutability":"mutable","name":"subnetAddress","nameLocation":"34774:13:91","nodeType":"VariableDeclaration","scope":55582,"src":"34766:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55571,"name":"address","nodeType":"ElementaryTypeName","src":"34766:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34745:43:91"},"returnParameters":{"id":55574,"nodeType":"ParameterList","parameters":[],"src":"34796:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55652,"nodeType":"FunctionDefinition","src":"34878:541:91","nodes":[],"body":{"id":55651,"nodeType":"Block","src":"35032:387:91","nodes":[],"statements":[{"expression":{"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55601,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"35042:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55605,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35082:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35074:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55603,"name":"address","nodeType":"ElementaryTypeName","src":"35074:7:91","typeDescriptions":{}}},"id":55606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35074:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55602,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35054:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35054:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35042:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55609,"nodeType":"ExpressionStatement","src":"35042:44:91"},{"expression":{"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55610,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35096:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55614,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35134:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35126:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55612,"name":"address","nodeType":"ElementaryTypeName","src":"35126:7:91","typeDescriptions":{}}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35126:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55611,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35107:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35107:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35096:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55618,"nodeType":"ExpressionStatement","src":"35096:42:91"},{"assignments":[55621],"declarations":[{"constant":false,"id":55621,"mutability":"mutable","name":"subnetId","nameLocation":"35165:8:91","nodeType":"VariableDeclaration","scope":55651,"src":"35149:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55620,"nodeType":"UserDefinedTypeName","pathNode":{"id":55619,"name":"SubnetID","nameLocations":["35149:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35149:8:91"},"referencedDeclaration":50030,"src":"35149:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55628,"initialValue":{"arguments":[{"id":55626,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55584,"src":"35217:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55622,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35176:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35185:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35176:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35202:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35176: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":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35149:82:91"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"subnet","nameLocation":"35256:6:91","nodeType":"VariableDeclaration","scope":55651,"src":"35242:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55630,"nodeType":"UserDefinedTypeName","pathNode":{"id":55629,"name":"Subnet","nameLocations":["35242:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35242:6:91"},"referencedDeclaration":50044,"src":"35242:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55638,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55634,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"35282:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35291:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35282: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":55636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35282:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55632,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35265:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35274:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35265: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":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35265:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35242:58:91"},{"expression":{"components":[{"expression":{"id":55639,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35319:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35326:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35319:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55641,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35330:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35337:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35330:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55643,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35344:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35351:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35344:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55645,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35365:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35372:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35365:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55647,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35394:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35401:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35394:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35318: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":55600,"id":55650,"nodeType":"Return","src":"35311:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34887:11:91","parameters":{"id":55588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55584,"mutability":"mutable","name":"subnetAddress","nameLocation":"34916:13:91","nodeType":"VariableDeclaration","scope":55652,"src":"34908:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55583,"name":"address","nodeType":"ElementaryTypeName","src":"34908:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55587,"mutability":"mutable","name":"gw","nameLocation":"34954:2:91","nodeType":"VariableDeclaration","scope":55652,"src":"34939:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55586,"nodeType":"UserDefinedTypeName","pathNode":{"id":55585,"name":"GatewayDiamond","nameLocations":["34939:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34939:14:91"},"referencedDeclaration":36170,"src":"34939:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34898:64:91"},"returnParameters":{"id":55600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34979:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55590,"nodeType":"UserDefinedTypeName","pathNode":{"id":55589,"name":"SubnetID","nameLocations":["34979:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34979:8:91"},"referencedDeclaration":50030,"src":"34979:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34996:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55592,"name":"uint256","nodeType":"ElementaryTypeName","src":"34996:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35005:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55594,"name":"uint256","nodeType":"ElementaryTypeName","src":"35005:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35014:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55596,"name":"uint256","nodeType":"ElementaryTypeName","src":"35014:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35023:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55598,"name":"uint256","nodeType":"ElementaryTypeName","src":"35023:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34978:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55674,"nodeType":"FunctionDefinition","src":"35425:177:91","nodes":[],"body":{"id":55673,"nodeType":"Block","src":"35536:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55669,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55654,"src":"35565:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55670,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"35580: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":55668,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"35553: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":55671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35553: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":55667,"id":55672,"nodeType":"Return","src":"35546:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35434:9:91","parameters":{"id":55655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55654,"mutability":"mutable","name":"subnetAddress","nameLocation":"35452:13:91","nodeType":"VariableDeclaration","scope":55674,"src":"35444:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55653,"name":"address","nodeType":"ElementaryTypeName","src":"35444:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35443:23:91"},"returnParameters":{"id":55667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35483:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55657,"nodeType":"UserDefinedTypeName","pathNode":{"id":55656,"name":"SubnetID","nameLocations":["35483:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35483:8:91"},"referencedDeclaration":50030,"src":"35483:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35500:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55659,"name":"uint256","nodeType":"ElementaryTypeName","src":"35500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35509:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55661,"name":"uint256","nodeType":"ElementaryTypeName","src":"35509:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35518:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55663,"name":"uint256","nodeType":"ElementaryTypeName","src":"35518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35527:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55665,"name":"uint256","nodeType":"ElementaryTypeName","src":"35527:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35482:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53053,"name":"Test","nameLocations":["8753:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8753:4:91"},"id":53054,"nodeType":"InheritanceSpecifier","src":"8753:4:91"},{"baseName":{"id":53055,"name":"TestParams","nameLocations":["8759:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"8759:10:91"},"id":53056,"nodeType":"InheritanceSpecifier","src":"8759:10:91"},{"baseName":{"id":53057,"name":"TestRegistry","nameLocations":["8771:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52759,"src":"8771:12:91"},"id":53058,"nodeType":"InheritanceSpecifier","src":"8771:12:91"},{"baseName":{"id":53059,"name":"TestSubnetActor","nameLocations":["8785:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53052,"src":"8785:15:91"},"id":53060,"nodeType":"InheritanceSpecifier","src":"8785:15:91"},{"baseName":{"id":53061,"name":"TestGatewayActor","nameLocations":["8802:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52888,"src":"8802:16:91"},"id":53062,"nodeType":"InheritanceSpecifier","src":"8802:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8730:19:91","scope":55676,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestBase.sol/TestSubnetActor.json b/contracts/.out/IntegrationTestBase.sol/TestSubnetActor.json new file mode 100644 index 000000000..d3b5d650e --- /dev/null +++ b/contracts/.out/IntegrationTestBase.sol/TestSubnetActor.json @@ -0,0 +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":"0x60808060405234620010dc57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f72476574746572466163657400000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee57600091620010bd575b508051906001600160401b038211620007b057680100000000000000008211620007b057601b5482601b558083106200105a575b5060200190601b60005260206000209060005b8160031c81106200100a5750600719811681038062000fb2575b505050506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e616765724661636574000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000f93575b508051906001600160401b038211620007b057680100000000000000008211620007b057601c5482601c5580831062000f27575b5060200190601c60005260206000209060005b8160031c811062000ed757506007198116810362000e7e575b50506040516319b8a26360e21b815260206004820152601560248201527f5375626e65744163746f725061757365466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000e5f575b508051906001600160401b038211620007b057680100000000000000008211620007b057601d5482601d5580831062000dd6575b5060200190601d60005260206000209060005b8160031c811062000d8657506007198116810362000d2d575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f725265776172644661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000d0e575b508051906001600160401b038211620007b057680100000000000000008211620007b057601e5482601e5580831062000c85575b5060200190601e60005260206000209060005b8160031c811062000c3557506007198116810362000bdc575b50506040516319b8a26360e21b815260206004820152601d60248201527f5375626e65744163746f72436865636b706f696e74696e6746616365740000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000bbd575b508051906001600160401b038211620007b057680100000000000000008211620007b057601f5482601f5580831062000b34575b5060200190601f60005260206000209060005b8160031c811062000ae457506007198116810362000a8b575b50506040516319b8a26360e21b815260206004820152600f60248201526e5375626e65744163746f724d6f636b60881b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee5760009162000a6c575b508051906001600160401b038211620007b057680100000000000000008211620007b05760205482602055808310620009f4575b506020600081815291019160008051602062001e2a833981519152915b8160031c8110620009a45750600719811681036200094b575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee576000916200092c575b508051906001600160401b038211620007b057680100000000000000008211620007b05760215482602155808310620008a3575b5060200190602160005260206000209060005b8160031c811062000853575060071981168103620007fa575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620007ee57600091620007c6575b508051906001600160401b038211620007b057680100000000000000008211620007b057602254826022558083106200074d575b5060200190602260005260206000208160031c9160005b838110620006fd57506007198116900380620006a8575b604051610c8e90816200119c8239f35b9260009360005b818110620006c65750505001553880808062000698565b9091946020620006f2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620006af565b6000805b600881106200071857508382015560010162000681565b9590602062000743600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000701565b60226000526020600020600780850160031c8201920160031c0190601c8460021b168062000794575b505b8181106200078757506200066a565b6000815560010162000778565b600019908183019182549160200360031b1c1690553862000776565b634e487b7160e01b600052604160045260246000fd5b620007e791503d806000833e620007de8183620010e1565b81019062001105565b3862000636565b6040513d6000823e3d90fd5b60009260005b6007198316830381106200081e57505060031c0155388080620005cf565b9093602062000849600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000800565b6000805b600881106200086e575083820155600101620005b6565b9490602062000899600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000857565b60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570600284901b601c168062000908575b506007840160031c81015b6007830160031c82018110620008fb575050620005a3565b60008155600101620008e3565b60001990816007870160031c8401019182549160200360031b1c16905538620008d8565b6200094491503d806000833e620007de8183620010e1565b386200056f565b60009260005b6007198316830381106200096f57505060031c01553880806200050a565b909360206200099a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000951565b6000805b60088110620009bf575083820155600101620004f1565b94906020620009ea600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620009a8565b602060005260008051602062001e2a833981519152600284901b601c168062000a48575b506007840160031c81015b6007830160031c8201811062000a3b575050620004d4565b6000815560010162000a23565b60001990816007870160031c8401019182549160200360031b1c1690553862000a18565b62000a8491503d806000833e620007de8183620010e1565b38620004a0565b60009260005b60071983168303811062000aaf57505060031c01553880806200043b565b9093602062000ada600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000a91565b6000805b6008811062000aff57508382015560010162000422565b9490602062000b2a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000ae8565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000b99575b506007840160031c81015b6007830160031c8201811062000b8c5750506200040f565b6000815560010162000b74565b60001990816007870160031c8401019182549160200360031b1c1690553862000b69565b62000bd591503d806000833e620007de8183620010e1565b38620003db565b60009260005b60071983168303811062000c0057505060031c015538808062000368565b9093602062000c2b600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000be2565b6000805b6008811062000c505750838201556001016200034f565b9490602062000c7b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000c39565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000cea575b506007840160031c81015b6007830160031c8201811062000cdd5750506200033c565b6000815560010162000cc5565b60001990816007870160031c8401019182549160200360031b1c1690553862000cba565b62000d2691503d806000833e620007de8183620010e1565b3862000308565b60009260005b60071983168303811062000d5157505060031c015538808062000295565b9093602062000d7c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000d33565b6000805b6008811062000da15750838201556001016200027c565b9490602062000dcc600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d8a565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c168062000e3b575b506007840160031c81015b6007830160031c8201811062000e2e57505062000269565b6000815560010162000e16565b60001990816007870160031c8401019182549160200360031b1c1690553862000e0b565b62000e7791503d806000833e620007de8183620010e1565b3862000235565b60009260005b60071983168303811062000ea257505060031c0155388080620001c2565b9093602062000ecd600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000e84565b6000805b6008811062000ef2575083820155600101620001a9565b9490602062000f1d600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000edb565b601c6000526020600020601c8460021b168062000f6f575b506007840160031c81015b6007830160031c8201811062000f6257505062000196565b6000815560010162000f4a565b60001990816007870160031c8401019182549160200360031b1c1690553862000f3f565b62000fab91503d806000833e620007de8183620010e1565b3862000162565b9260009360005b81811062000fd35750505060031c015538808080620000ef565b909194602062000fff600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000fb9565b6000805b6008811062001025575083820155600101620000d5565b9490602062001050600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200100e565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620010a1575b505b818110620010945750620000c2565b6000815560010162001085565b600019908183019182549160200360031b1c1690553862001083565b620010d591503d806000833e620007de8183620010e1565b386200008e565b600080fd5b601f909101601f19168101906001600160401b03821190821017620007b057604052565b906020908183820312620010dc5782516001600160401b0393848211620010dc570181601f82011215620010dc578051938411620007b0578360051b90604051946200115485840187620010e1565b85528380860192820101928311620010dc578301905b82821062001179575050505090565b81516001600160e01b031981168103620010dc5781529083019083016200116a56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea264697066735822122052374e380abfa1a492c65b69bdde135fe70597b41c04c46ba4351de6e1af6e8464736f6c63430008130033c97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb","sourceMap":"6324:2395:91:-:0;;;;;;;1594:4:2;6324:2395:91;;;;1594:4:2;6324:2395:91;;;1594:4:2;6324:2395:91;3201:4:5;6324:2395:91;;;3201:4:5;6324:2395:91;;;;7019:58;;6324:2395;3201:4:5;7019:58:91;;6324:2395;;;;;;;;;;;1594:4:2;7019:15:91;6324:2395;7019:15;;:58;;;;;;;1594:4:2;7019:58:91;;;-1:-1:-1;;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;6999:78;6324:2395;;6999:78;6324:2395;;;;;;-1:-1:-1;6324:2395:91;;;;6999:78;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;;;;;;;;;;;7108:59;;6324:2395;3201:4:5;7108:59:91;;6324:2395;;;;;;;;;;;1594:4:2;7019:15:91;6324:2395;7019:15;;7108:59;;;;;;;1594:4:2;7108:59:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;7087:80;6324:2395;;7087:80;6324:2395;;;;;;;;;;;7087:80;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;-1:-1:-1;;6324:2395:91;;-1:-1:-1;;;7197:57:91;;6324:2395;3201:4:5;7197:57:91;;6324:2395;;;;;;;;;;;;-1:-1:-1;;6324:2395:91;;;7019:15;7197:57;;;;;;;1594:4:2;7197:57:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;7177:77;6324:2395;;7177:77;6324:2395;;;;;;;;;;;7177:77;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;-1:-1:-1;;6324:2395:91;;-1:-1:-1;;;7286:58:91;;6324:2395;3201:4:5;7286:58:91;;6324:2395;;;;;;;;;;;;-1:-1:-1;;6324:2395:91;;;7019:15;7286:58;;;;;;;1594:4:2;7286:58:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;7264:80;6324:2395;;7264:80;6324:2395;;;;;;;;;;;7264:80;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;-1:-1:-1;;6324:2395:91;;-1:-1:-1;;;7380:65:91;;6324:2395;3201:4:5;7380:65:91;;6324:2395;7177:77;6324:2395;;;;;;;;;;-1:-1:-1;;6324:2395:91;;;7019:15;7380:65;;;;;;;1594:4:2;7380:65:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;7354:91;6324:2395;;7354:91;6324:2395;;;;;;;;;;;7354:91;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;-1:-1:-1;;6324:2395:91;;-1:-1:-1;;;7482:51:91;;6324:2395;3201:4:5;7482:51:91;;6324:2395;;;;;;-1:-1:-1;;;6324:2395:91;;;;;-1:-1:-1;;6324:2395:91;;;7019:15;7482:51;;;;;;;1594:4:2;7482:51:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6324:2395:91;1594:4:2;6324:2395:91;;;;;;-1:-1:-1;;;;;;;;;;;6324:2395:91;;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;-1:-1:-1;;6324:2395:91;;-1:-1:-1;;;7563:51:91;;6324:2395;3201:4:5;7563:51:91;;6324:2395;;;;;;-1:-1:-1;;;6324:2395:91;;;;;-1:-1:-1;;6324:2395:91;;;7019:15;7563:51;;;;;;;1594:4:2;7563:51:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;7543:71;6324:2395;;7543:71;6324:2395;;;;;;;;;;;7543:71;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;-1:-1:-1;;6324:2395:91;;-1:-1:-1;;;7644:53:91;;6324:2395;3201:4:5;7644:53:91;;6324:2395;;;;;;-1:-1:-1;;;6324:2395:91;;;;;-1:-1:-1;;6324:2395:91;;;7019:15;7644:53;;;;;;;1594:4:2;7644:53:91;;;6324:2395;-1:-1:-1;6324:2395:91;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;7624:73;6324:2395;;7624:73;6324:2395;;;;;;;;;;;7624:73;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;1594:4:2;6324:2395:91;;;;;;-1:-1:-1;;;6324:2395:91;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:73;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;3201:4:5;6324:2395:91;;1594:4:2;6324:2395:91;7644:53;;;;;;1594:4:2;7644:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;6324:2395;;;1594:4:2;6324:2395:91;;;;;;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7543:71;1594:4:2;6324:2395:91;;;;;;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7563:51;;;;;;1594:4:2;7563:51:91;;;;;;:::i;:::-;;;;6324:2395;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;-1:-1:-1;;;;;;;;;;;6324:2395:91;;;;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7482:51;;;;;;1594:4:2;7482:51:91;;;;;;:::i;:::-;;;;6324:2395;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7354:91;1594:4:2;6324:2395:91;;;;;;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:65;;;;;;1594:4:2;7380:65:91;;;;;;:::i;:::-;;;;6324:2395;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:80;1594:4:2;6324:2395:91;;;;;;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:58;;;;;;1594:4:2;7286:58:91;;;;;;:::i;:::-;;;;6324:2395;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7177:77;1594:4:2;6324:2395:91;;;;;;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7197:57;;;;;;1594:4:2;7197:57:91;;;;;;:::i;:::-;;;;6324:2395;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:80;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;7087:80;6324:2395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7108:59;;;;;;1594:4:2;7108:59:91;;;;;;:::i;:::-;;;;6324:2395;;1594:4:2;6324:2395:91;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6324:2395:91;;;;;;-1:-1:-1;6324:2395:91;;;;1594:4:2;6324:2395:91;;;;;;;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6999:78;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6324:2395:91;;1594:4:2;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;7019:58;;;;;;1594:4:2;7019:58:91;;;;;;:::i;:::-;;;;6324:2395;;;;;;;;;-1:-1:-1;;6324:2395:91;;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;6324: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":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea264697066735822122052374e380abfa1a492c65b69bdde135fe70597b41c04c46ba4351de6e1af6e8464736f6c63430008130033","sourceMap":"6324:2395:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;6324:2395:91;;;;:::i;:::-;;1671:64:2;6324:2395:91;;1671:64:2;;;:::i;:::-;6324:2395:91;;;1982:18:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6324:2395:91;;;;;;;;-1:-1:-1;6324:2395:91;;;;;-1:-1:-1;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6324:2395:91;;;;;-1:-1:-1;6324:2395:91;;;;;;;;;-1:-1:-1;6324:2395:91;;;;-1:-1:-1;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;6324:2395:91;;;;:::i;:::-;;1671:64:2;6324:2395:91;;1671:64:2;;;:::i;:::-;6324:2395:91;;;2899:18:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6324:2395:91;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;6324:2395:91;;;;:::i;:::-;;1671:64:2;6324:2395:91;;1671:64:2;;;:::i;:::-;6324:2395:91;;;2416:18:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6324:2395:91;;;;;;;;-1:-1:-1;6324:2395:91;;;;;-1:-1:-1;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6324:2395:91;;;;;-1:-1:-1;6324:2395:91;;;;;;;;;-1:-1:-1;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;6324:2395:91;;;;:::i;:::-;;1671:64:2;6324:2395:91;;1671:64:2;;;:::i;:::-;6324:2395:91;;;2592:26:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6324:2395:91;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6324:2395:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6324:2395:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;6324:2395:91;;;;;;;;;;;;;;;;;1671:64:2;6324:2395:91;1671:64:2;;;;;;;;;;;6324:2395:91;1671:64:2;:::o;:::-;6324:2395:91;;;1671:64:2;;;;;;;;;;6324:2395:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;6324:2395:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;6324:2395:91;;;2196:43:2;;;6324:2395:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;6324:2395:91;;-1:-1:-1;1671:64:2;;6324:2395:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;6324:2395:91;1671:64:2;2086:175;;;6324:2395:91;;;;;;1671:64:2;6324:2395:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;6324:2395:91;;;1671:64:2;6324:2395:91;;;-1:-1:-1;;6324:2395:91;2196:43:2;1671:64;6324:2395:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;6324:2395:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;6324:2395:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;6324:2395:91;1671:64:2;;;6324:2395:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;6324:2395:91;1671:64:2;6324: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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"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":55676,"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":[55675],"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":[57060],"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":[58922],"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":[52888],"TestParams":[52695],"TestRegistry":[52759],"TestSubnetActor":[53052],"TestUtils":[57848],"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:35559: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":55676,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52528,"nodeType":"ImportDirective","src":"100:37:91","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52531,"nodeType":"ImportDirective","src":"139:72:91","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52529,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"147:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52530,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"160:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52533,"nodeType":"ImportDirective","src":"212:61:91","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52532,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"220:13:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52535,"nodeType":"ImportDirective","src":"274:56:91","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52534,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"282:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52540,"nodeType":"ImportDirective","src":"331:102:91","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49945,"symbolAliases":[{"foreign":{"id":52536,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"339:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52537,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"349:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"369:11:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"382:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52542,"nodeType":"ImportDirective","src":"434:57:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":49959,"symbolAliases":[{"foreign":{"id":52541,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49951,"src":"442:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"492:140:91","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":52543,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"500:8:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"510:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52545,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"522:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52546,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"538:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52547,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"554:6:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52548,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50179,"src":"562:12:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52549,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"576:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52550,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"588:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"633:61:91","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48026,"symbolAliases":[{"foreign":{"id":52552,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48025,"src":"641:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"695:65:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40907,"symbolAliases":[{"foreign":{"id":52554,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"703:16:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"761:61:91","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40726,"symbolAliases":[{"foreign":{"id":52556,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"769:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"823:67:91","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":47415,"symbolAliases":[{"foreign":{"id":52558,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47414,"src":"831:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"891:56:91","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52560,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"899:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"948:57:91","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"956:14:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1006:65:91","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52564,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1014:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1072:73:91","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52566,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1080:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1146:79:91","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52568,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1154:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1226:75:91","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52570,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1234:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1303:80:91","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52572,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1311:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1384:80:91","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52574,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1392:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1465:84:91","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52576,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1473:20:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1550:82:91","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52578,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1558:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1634:60:91","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"./mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":58923,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"1642:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1695:82:91","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":52582,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"1703:23:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"1778:78:91","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"1786:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"1857:94:91","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":52586,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"1865:29:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"1952:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":52588,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"1960:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2033:80:91","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":52590,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"2041:22:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2115:71:91","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52592,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"2123:21:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2187:82:91","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":52594,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"2195:19:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52597,"nodeType":"ImportDirective","src":"2270:78:91","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":52596,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"2278:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52599,"nodeType":"ImportDirective","src":"2350:71:91","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52598,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2358:17:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52601,"nodeType":"ImportDirective","src":"2422:67:91","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52600,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2430:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52603,"nodeType":"ImportDirective","src":"2490:69:91","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":52602,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"2498:18:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52605,"nodeType":"ImportDirective","src":"2560:50:91","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57849,"symbolAliases":[{"foreign":{"id":52604,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"2568:9:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52607,"nodeType":"ImportDirective","src":"2611:62:91","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55676,"sourceUnit":57061,"symbolAliases":[{"foreign":{"id":52606,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"2619:15:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52695,"nodeType":"ContractDefinition","src":"2675:1194:91","nodes":[{"id":52614,"nodeType":"VariableDeclaration","src":"2701:44:91","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2717:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52608,"name":"uint64","nodeType":"ElementaryTypeName","src":"2701:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52610,"name":"uint64","nodeType":"ElementaryTypeName","src":"2734:6:91","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52609,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:91","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2742:3:91","memberName":"max","nodeType":"MemberAccess","src":"2729:16:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2751:91:91","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2768:20:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:42:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52616,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:91","typeDescriptions":{}}},"id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2848:42:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2864:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2848:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2889:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2896:54:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2913:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52624,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2956:47:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2971:27:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2956:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3001:2:91","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3009:51:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"3025:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52630,"name":"uint64","nodeType":"ElementaryTypeName","src":"3009:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3053:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3066:46:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"3082:25:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52633,"name":"uint64","nodeType":"ElementaryTypeName","src":"3066:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:2:91","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52638,"nodeType":"VariableDeclaration","src":"3118:44:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"3134:16:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52636,"name":"string","nodeType":"ElementaryTypeName","src":"3118:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3153:9:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3168:36:91","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"3183:7:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52639,"name":"bytes","nodeType":"ElementaryTypeName","src":"3168:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52640,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3193:11:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52644,"nodeType":"VariableDeclaration","src":"3210:48:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3227:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3264:49:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3281:22:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52645,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:7:91","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52653,"nodeType":"VariableDeclaration","src":"3319:52:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3336:21:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"3319:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368: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":52650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3360:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52649,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:91","typeDescriptions":{}}},"id":52652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52659,"nodeType":"VariableDeclaration","src":"3377:54:91","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3394:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52654,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428: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":52656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3420:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52655,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:91","typeDescriptions":{}}},"id":52658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3420:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3437:57:91","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3453:9:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52660,"name":"uint64","nodeType":"ElementaryTypeName","src":"3437:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3465:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52662,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3469:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3465:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52667,"nodeType":"VariableDeclaration","src":"3500:50:91","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3517:23:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:7:91","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3556:53:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3572:31:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52668,"name":"uint16","nodeType":"ElementaryTypeName","src":"3556:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3606:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52673,"nodeType":"VariableDeclaration","src":"3615:38:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3629:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52671,"name":"int8","nodeType":"ElementaryTypeName","src":"3615:4:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3651:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3659:37:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3675:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52674,"name":"uint64","nodeType":"ElementaryTypeName","src":"3659:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:3:91","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3702:45:91","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3719:15:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3745: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":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:91","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52688,"nodeType":"VariableDeclaration","src":"3753:57:91","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3770:24:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52683,"name":"address","nodeType":"ElementaryTypeName","src":"3753:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805: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":52685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3797:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52684,"name":"address","nodeType":"ElementaryTypeName","src":"3797:7:91","typeDescriptions":{}}},"id":52687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3797:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52694,"nodeType":"VariableDeclaration","src":"3816:50:91","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3833:19:91","scope":52695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52689,"name":"address","nodeType":"ElementaryTypeName","src":"3816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863: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":52691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52690,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:91","typeDescriptions":{}}},"id":52693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52695],"name":"TestParams","nameLocation":"2684:10:91","scope":55676,"usedErrors":[]},{"id":52759,"nodeType":"ContractDefinition","src":"3871:824:91","nodes":[{"id":52702,"nodeType":"VariableDeclaration","src":"3919:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3928:28:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52700,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3919:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52701,"nodeType":"ArrayTypeName","src":"3919:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3962:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3971:34:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52703,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52704,"nodeType":"ArrayTypeName","src":"3962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"4011:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"4020:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52706,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4011:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52707,"nodeType":"ArrayTypeName","src":"4011:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4049:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"4058:23:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52709,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4049:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52710,"nodeType":"ArrayTypeName","src":"4049:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4088:37:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"4110:15:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetRegistryDiamond","nameLocations":["4088:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"4088:21:91"},"referencedDeclaration":36853,"src":"4088:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52717,"nodeType":"VariableDeclaration","src":"4131:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"4149:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["4131:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"4131:17:91"},"referencedDeclaration":37355,"src":"4131:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52720,"nodeType":"VariableDeclaration","src":"4169:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"4185:14:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52719,"nodeType":"UserDefinedTypeName","pathNode":{"id":52718,"name":"DiamondCutFacet","nameLocations":["4169:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"4169:15:91"},"referencedDeclaration":36918,"src":"4169:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52723,"nodeType":"VariableDeclaration","src":"4205:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4225:19:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52722,"nodeType":"UserDefinedTypeName","pathNode":{"id":52721,"name":"RegisterSubnetFacet","nameLocations":["4205:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"4205:19:91"},"referencedDeclaration":52286,"src":"4205:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52726,"nodeType":"VariableDeclaration","src":"4250:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4268:25:91","scope":52759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52725,"nodeType":"UserDefinedTypeName","pathNode":{"id":52724,"name":"SubnetGetterFacet","nameLocations":["4250:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"4250:17:91"},"referencedDeclaration":52524,"src":"4250:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52758,"nodeType":"FunctionDefinition","src":"4300:393:91","nodes":[],"body":{"id":52757,"nodeType":"Block","src":"4314:379:91","nodes":[],"statements":[{"expression":{"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52729,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"4324:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4388: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":52730,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4355:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4355: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":52733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52735,"nodeType":"ExpressionStatement","src":"4324:86:91"},{"expression":{"id":52741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52736,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"4420:34:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4490: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":52737,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4457:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4457: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":52740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4457:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4420:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52742,"nodeType":"ExpressionStatement","src":"4420:90:91"},{"expression":{"id":52748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52743,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"4520:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4579: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":52744,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4546:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4562:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4546: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":52747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4520:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52749,"nodeType":"ExpressionStatement","src":"4520:77:91"},{"expression":{"id":52755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52750,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"4607:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4666: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":52751,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"4633:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4649:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"4633: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":52754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4607:79:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52756,"nodeType":"ExpressionStatement","src":"4607:79:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52727,"nodeType":"ParameterList","parameters":[],"src":"4311:2:91"},"returnParameters":{"id":52728,"nodeType":"ParameterList","parameters":[],"src":"4314:0:91"},"scope":52759,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52696,"name":"Test","nameLocations":["3896:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3896:4:91"},"id":52697,"nodeType":"InheritanceSpecifier","src":"3896:4:91"},{"baseName":{"id":52698,"name":"TestParams","nameLocations":["3902:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"3902:10:91"},"id":52699,"nodeType":"InheritanceSpecifier","src":"3902:10:91"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3880:12:91","scope":55676,"usedErrors":[]},{"id":52888,"nodeType":"ContractDefinition","src":"4697:1625:91","nodes":[{"id":52766,"nodeType":"VariableDeclaration","src":"4749:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4758:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4749:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4749:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4793:38:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4802:29:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4793:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4793:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4837:40:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4846:31:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4837:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4837:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4883:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4892:30:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4883:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4883:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4929:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4938:18:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4929:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4929:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4962:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4971:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52779,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4962:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52780,"nodeType":"ArrayTypeName","src":"4962:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4994:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"5003:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4994:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52783,"nodeType":"ArrayTypeName","src":"4994:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"5030:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"5039:17:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52785,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5030:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52786,"nodeType":"ArrayTypeName","src":"5030:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5062:25:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"5071:16:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52788,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5062:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52789,"nodeType":"ArrayTypeName","src":"5062:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5094:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"5109:14:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"GatewayDiamond","nameLocations":["5094:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"5094:14:91"},"referencedDeclaration":36170,"src":"5094:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5129:29:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"5149:9:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"GatewayManagerFacet","nameLocations":["5129:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"5129:19:91"},"referencedDeclaration":38870,"src":"5129:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5164:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"5183:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"GatewayGetterFacet","nameLocations":["5164:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"5164:18:91"},"referencedDeclaration":38317,"src":"5164:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5197:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5216:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"CheckpointingFacet","nameLocations":["5197:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5197:18:91"},"referencedDeclaration":39870,"src":"5197:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5242:39:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5261:20:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"XnetMessagingFacet","nameLocations":["5242:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5242:18:91"},"referencedDeclaration":40144,"src":"5242:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5287:43:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5308:22:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"TopDownFinalityFacet","nameLocations":["5287:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5287:20:91"},"referencedDeclaration":40071,"src":"5287:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52811,"nodeType":"VariableDeclaration","src":"5336:41:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5356:21:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52810,"nodeType":"UserDefinedTypeName","pathNode":{"id":52809,"name":"BottomUpRouterFacet","nameLocations":["5336:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5336:19:91"},"referencedDeclaration":39601,"src":"5336:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52814,"nodeType":"VariableDeclaration","src":"5383:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5405:11:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52813,"nodeType":"UserDefinedTypeName","pathNode":{"id":52812,"name":"GatewayMessengerFacet","nameLocations":["5383:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5383:21:91"},"referencedDeclaration":39235,"src":"5383:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52817,"nodeType":"VariableDeclaration","src":"5422:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5438:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52816,"nodeType":"UserDefinedTypeName","pathNode":{"id":52815,"name":"DiamondCutFacet","nameLocations":["5422:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5422:15:91"},"referencedDeclaration":36918,"src":"5422:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52820,"nodeType":"VariableDeclaration","src":"5452:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5470:8:91","scope":52888,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52819,"nodeType":"UserDefinedTypeName","pathNode":{"id":52818,"name":"DiamondLoupeFacet","nameLocations":["5452:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5452:17:91"},"referencedDeclaration":37355,"src":"5452:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52887,"nodeType":"FunctionDefinition","src":"5485:835:91","nodes":[],"body":{"id":52886,"nodeType":"Block","src":"5499:821:91","nodes":[],"statements":[{"expression":{"id":52828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52823,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5509:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5574: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":52824,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5541:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5557:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5541: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":52827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5509:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52829,"nodeType":"ExpressionStatement","src":"5509:86:91"},{"expression":{"id":52835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5605:29:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5670: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":52831,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5637:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5653:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5637: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":52834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:86:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52836,"nodeType":"ExpressionStatement","src":"5605:86:91"},{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52837,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5701:31:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768: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":52838,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5735:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5751:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5735: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":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5701:90:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52843,"nodeType":"ExpressionStatement","src":"5701:90:91"},{"expression":{"id":52849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52844,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5801:30:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5867: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":52845,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5834:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5834: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":52848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5834:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5801:88:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52850,"nodeType":"ExpressionStatement","src":"5801:88:91"},{"expression":{"id":52856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52851,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"5900:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5953: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":52852,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"5920:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5936:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"5920: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":52855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5920:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5900:74:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52857,"nodeType":"ExpressionStatement","src":"5900:74:91"},{"expression":{"id":52863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52858,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"5984:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6038: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":52859,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6005:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6005: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":52862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5984:76:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52864,"nodeType":"ExpressionStatement","src":"5984:76:91"},{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52865,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"6070:20:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6126: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":52866,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6093:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6109:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6093: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":52869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6070:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52871,"nodeType":"ExpressionStatement","src":"6070:80:91"},{"expression":{"id":52877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52872,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"6160:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6213: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":52873,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6180:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6196:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6180: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":52876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6160:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52878,"nodeType":"ExpressionStatement","src":"6160:71:91"},{"expression":{"id":52884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52879,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"6241:16:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6293: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":52880,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"6260:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6276:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"6260: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":52883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6241:72:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52885,"nodeType":"ExpressionStatement","src":"6241:72:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52821,"nodeType":"ParameterList","parameters":[],"src":"5496:2:91"},"returnParameters":{"id":52822,"nodeType":"ParameterList","parameters":[],"src":"5499:0:91"},"scope":52888,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52760,"name":"Test","nameLocations":["4726:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4726:4:91"},"id":52761,"nodeType":"InheritanceSpecifier","src":"4726:4:91"},{"baseName":{"id":52762,"name":"TestParams","nameLocations":["4732:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"4732:10:91"},"id":52763,"nodeType":"InheritanceSpecifier","src":"4732:10:91"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52888,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4706:16:91","scope":55676,"usedErrors":[]},{"id":53052,"nodeType":"ContractDefinition","src":"6324:2395:91","nodes":[{"id":52895,"nodeType":"VariableDeclaration","src":"6375:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6384:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52893,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6375:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52894,"nodeType":"ArrayTypeName","src":"6375:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52898,"nodeType":"VariableDeclaration","src":"6407:27:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6416:18:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52896,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6407:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52897,"nodeType":"ArrayTypeName","src":"6407:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52901,"nodeType":"VariableDeclaration","src":"6440:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauserSelectors","nameLocation":"6449:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52899,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6440:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52900,"nodeType":"ArrayTypeName","src":"6440:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52904,"nodeType":"VariableDeclaration","src":"6472:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarderSelectors","nameLocation":"6481:19:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6472:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52903,"nodeType":"ArrayTypeName","src":"6472:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52907,"nodeType":"VariableDeclaration","src":"6506:32:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointerSelectors","nameLocation":"6515:23:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52905,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6506:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52906,"nodeType":"ArrayTypeName","src":"6506:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52910,"nodeType":"VariableDeclaration","src":"6544:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6553:24:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52908,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6544:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52909,"nodeType":"ArrayTypeName","src":"6544:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52913,"nodeType":"VariableDeclaration","src":"6583:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6592:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52911,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6583:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52912,"nodeType":"ArrayTypeName","src":"6583:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52916,"nodeType":"VariableDeclaration","src":"6615:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6624:17:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52914,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6615:6:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52915,"nodeType":"ArrayTypeName","src":"6615:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52919,"nodeType":"VariableDeclaration","src":"6648:28:91","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6667:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52918,"nodeType":"UserDefinedTypeName","pathNode":{"id":52917,"name":"SubnetActorDiamond","nameLocations":["6648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6648:18:91"},"referencedDeclaration":36615,"src":"6648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6682:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6706:9:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52921,"nodeType":"UserDefinedTypeName","pathNode":{"id":52920,"name":"SubnetActorManagerFacet","nameLocations":["6682:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"6682:23:91"},"referencedDeclaration":51946,"src":"6682:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6721:22:91","nodes":[],"constant":false,"mutability":"mutable","name":"saMock","nameLocation":"6737:6:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":52924,"nodeType":"UserDefinedTypeName","pathNode":{"id":52923,"name":"SubnetActorMock","nameLocations":["6721:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"6721:15:91"},"referencedDeclaration":58922,"src":"6721:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6749:31:91","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6772:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52927,"nodeType":"UserDefinedTypeName","pathNode":{"id":52926,"name":"SubnetActorGetterFacet","nameLocations":["6749:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"6749:22:91"},"referencedDeclaration":51235,"src":"6749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6786:33:91","nodes":[],"constant":false,"mutability":"mutable","name":"saRewarder","nameLocation":"6809:10:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":52930,"nodeType":"UserDefinedTypeName","pathNode":{"id":52929,"name":"SubnetActorRewardFacet","nameLocations":["6786:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"6786:22:91"},"referencedDeclaration":52158,"src":"6786:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6825:30:91","nodes":[],"constant":false,"mutability":"mutable","name":"saPauser","nameLocation":"6847:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorPauseFacet","nameLocations":["6825:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"6825:21:91"},"referencedDeclaration":51991,"src":"6825:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6861:44:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCheckpointer","nameLocation":"6891:14:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorCheckpointingFacet","nameLocations":["6861:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"6861:29:91"},"referencedDeclaration":50577,"src":"6861:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"6912:24:91","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6928:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"DiamondCutFacet","nameLocations":["6912:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"6912:15:91"},"referencedDeclaration":36918,"src":"6912:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"6942:26:91","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6960:8:91","scope":53052,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"DiamondLoupeFacet","nameLocations":["6942:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"6942:17:91"},"referencedDeclaration":37355,"src":"6942:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":53003,"nodeType":"FunctionDefinition","src":"6975:729:91","nodes":[],"body":{"id":53002,"nodeType":"Block","src":"6989:715:91","nodes":[],"statements":[{"expression":{"id":52951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52946,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"6999:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7052: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":52947,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7019:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7035:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7019: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":52950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6999:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52952,"nodeType":"ExpressionStatement","src":"6999:78:91"},{"expression":{"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52953,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"7087:18:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7141: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":52954,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7108:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7124:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7108: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":52957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7108:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7087:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52959,"nodeType":"ExpressionStatement","src":"7087:80:91"},{"expression":{"id":52965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52960,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"7177:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":52963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7230: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":52961,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7197:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7213:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7197: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":52964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:57:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7177:77:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52966,"nodeType":"ExpressionStatement","src":"7177:77:91"},{"expression":{"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52967,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"7264:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":52970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7319: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":52968,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7286:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7302:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7286: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":52971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7264:80:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52973,"nodeType":"ExpressionStatement","src":"7264:80:91"},{"expression":{"id":52979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52974,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"7354:23:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":52977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7413: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":52975,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7380:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7396:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7380: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":52978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7380:65:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7354:91:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52980,"nodeType":"ExpressionStatement","src":"7354:91:91"},{"expression":{"id":52986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52981,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"7455:24:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":52984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7515: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":52982,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7482:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7498:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7482: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":52985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7455:78:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52987,"nodeType":"ExpressionStatement","src":"7455:78:91"},{"expression":{"id":52993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52988,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"7543:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7596: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":52989,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7563:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7579:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7563: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":52992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7563:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7543:71:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52994,"nodeType":"ExpressionStatement","src":"7543:71:91"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52995,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"7624:17:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7677: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":52996,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"7644:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$57060_$","typeString":"type(library SelectorLibrary)"}},"id":52997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7660:16:91","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":57059,"src":"7644: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":52999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7644:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7624:73:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":53001,"nodeType":"ExpressionStatement","src":"7624:73:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52944,"nodeType":"ParameterList","parameters":[],"src":"6986:2:91"},"returnParameters":{"id":52945,"nodeType":"ParameterList","parameters":[],"src":"6989:0:91"},"scope":53052,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53051,"nodeType":"FunctionDefinition","src":"7710:1007:91","nodes":[],"body":{"id":53050,"nodeType":"Block","src":"7857:860:91","nodes":[],"statements":[{"assignments":[53013],"declarations":[{"constant":false,"id":53013,"mutability":"mutable","name":"native","nameLocation":"7887:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7867:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":53012,"nodeType":"UserDefinedTypeName","pathNode":{"id":53011,"name":"SupplySource","nameLocations":["7867:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"7867:12:91"},"referencedDeclaration":50179,"src":"7867:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53017,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53014,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"7896:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":53015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7915:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"7896:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7896:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:56:91"},{"assignments":[53022],"declarations":[{"constant":false,"id":53022,"mutability":"mutable","name":"params","nameLocation":"7977:6:91","nodeType":"VariableDeclaration","scope":53050,"src":"7933:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53021,"nodeType":"UserDefinedTypeName","pathNode":{"id":53020,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7933:18:91","7952:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7933:36:91"},"referencedDeclaration":36253,"src":"7933:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53047,"initialValue":{"arguments":[{"arguments":[{"id":53026,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"8063:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8101: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":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8087: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":53027,"name":"address","nodeType":"ElementaryTypeName","src":"8091:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53028,"nodeType":"ArrayTypeName","src":"8091:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087: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":53025,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"8047:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8057:4:91","8080:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"8047:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53033,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53005,"src":"8135:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53034,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8162:13:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8176:10:91","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8162:24:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53036,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8225:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53037,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8279:22:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53038,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"8336:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"8395:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53040,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"8459:31:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53041,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52673,"src":"8516:19:91","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53042,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"8565:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53043,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"8616:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8631:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"8616:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":53045,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53013,"src":"8669: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":53023,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7986:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8005:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7986:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8037:8:91","8119:14:91","8151:9:91","8200:23:91","8264:13:91","8315:19:91","8375:18:91","8436:21:91","8504:10:91","8549:14:91","8600:14:91","8655:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7986:700:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7933:753:91"},{"expression":{"id":53048,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53022,"src":"8704:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":53010,"id":53049,"nodeType":"Return","src":"8697:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7719:35:91","parameters":{"id":53006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53005,"mutability":"mutable","name":"gw","nameLocation":"7772:2:91","nodeType":"VariableDeclaration","scope":53051,"src":"7764:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53004,"name":"address","nodeType":"ElementaryTypeName","src":"7764:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7754:26:91"},"returnParameters":{"id":53010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53051,"src":"7812:43:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53008,"nodeType":"UserDefinedTypeName","pathNode":{"id":53007,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7812:18:91","7831:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7812:36:91"},"referencedDeclaration":36253,"src":"7812:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7811:45:91"},"scope":53052,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52889,"name":"Test","nameLocations":["6352:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6352:4:91"},"id":52890,"nodeType":"InheritanceSpecifier","src":"6352:4:91"},{"baseName":{"id":52891,"name":"TestParams","nameLocations":["6358:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"6358:10:91"},"id":52892,"nodeType":"InheritanceSpecifier","src":"6358:10:91"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53052,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6333:15:91","scope":55676,"usedErrors":[]},{"id":55675,"nodeType":"ContractDefinition","src":"8721:26883:91","nodes":[{"id":53066,"nodeType":"UsingForDirective","src":"8825:34:91","nodes":[],"global":false,"libraryName":{"id":53063,"name":"SubnetIDHelper","nameLocations":["8831:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":48025,"src":"8831:14:91"},"typeName":{"id":53065,"nodeType":"UserDefinedTypeName","pathNode":{"id":53064,"name":"SubnetID","nameLocations":["8850:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"8850:8:91"},"referencedDeclaration":50030,"src":"8850:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}}},{"id":53070,"nodeType":"UsingForDirective","src":"8864:42:91","nodes":[],"global":false,"libraryName":{"id":53067,"name":"SupplySourceHelper","nameLocations":["8870:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":48351,"src":"8870:18:91"},"typeName":{"id":53069,"nodeType":"UserDefinedTypeName","pathNode":{"id":53068,"name":"SupplySource","nameLocations":["8893:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":50179,"src":"8893:12:91"},"referencedDeclaration":50179,"src":"8893:12:91","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50179_storage_ptr","typeString":"struct SupplySource"}}},{"id":53074,"nodeType":"UsingForDirective","src":"8911:34:91","nodes":[],"global":false,"libraryName":{"id":53071,"name":"CrossMsgHelper","nameLocations":["8917:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":40725,"src":"8917:14:91"},"typeName":{"id":53073,"nodeType":"UserDefinedTypeName","pathNode":{"id":53072,"name":"CrossMsg","nameLocations":["8936:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"8936:8:91"},"referencedDeclaration":49927,"src":"8936:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53078,"nodeType":"UsingForDirective","src":"8950:40:91","nodes":[],"global":false,"libraryName":{"id":53075,"name":"StorableMsgHelper","nameLocations":["8956:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":47414,"src":"8956:17:91"},"typeName":{"id":53077,"nodeType":"UserDefinedTypeName","pathNode":{"id":53076,"name":"StorableMsg","nameLocations":["8978:11:91"],"nodeType":"IdentifierPath","referencedDeclaration":49944,"src":"8978:11:91"},"referencedDeclaration":49944,"src":"8978:11:91","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53082,"nodeType":"UsingForDirective","src":"8995:38:91","nodes":[],"global":false,"libraryName":{"id":53079,"name":"FvmAddressHelper","nameLocations":["9001:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40906,"src":"9001:16:91"},"typeName":{"id":53081,"nodeType":"UserDefinedTypeName","pathNode":{"id":53080,"name":"FvmAddress","nameLocations":["9022:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"9022:10:91"},"referencedDeclaration":49951,"src":"9022:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53086,"nodeType":"EventDefinition","src":"9039:67:91","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"9045:21:91","parameters":{"id":53085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53084,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9083:21:91","nodeType":"VariableDeclaration","scope":53086,"src":"9067:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9066:39:91"}},{"id":53090,"nodeType":"FunctionDefinition","src":"9112:16:91","nodes":[],"body":{"id":53089,"nodeType":"Block","src":"9126:2:91","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53087,"nodeType":"ParameterList","parameters":[],"src":"9123:2:91"},"returnParameters":{"id":53088,"nodeType":"ParameterList","parameters":[],"src":"9126:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53292,"nodeType":"FunctionDefinition","src":"9134:1732:91","nodes":[],"body":{"id":53291,"nodeType":"Block","src":"9166:1700:91","nodes":[],"statements":[{"assignments":[53097],"declarations":[{"constant":false,"id":53097,"mutability":"mutable","name":"path","nameLocation":"9193:4:91","nodeType":"VariableDeclaration","scope":53291,"src":"9176:21:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53095,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53096,"nodeType":"ArrayTypeName","src":"9176:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53103,"initialValue":{"arguments":[{"hexValue":"31","id":53101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9214: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":53100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9200: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":53098,"name":"address","nodeType":"ElementaryTypeName","src":"9204:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53099,"nodeType":"ArrayTypeName","src":"9204:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9176:40:91"},{"expression":{"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53104,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53097,"src":"9226:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53106,"indexExpression":{"hexValue":"30","id":53105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231: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":"9226:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53107,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"9236:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9226:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53109,"nodeType":"ExpressionStatement","src":"9226:25:91"},{"assignments":[53114],"declarations":[{"constant":false,"id":53114,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9344:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"9304:59:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53113,"nodeType":"UserDefinedTypeName","pathNode":{"id":53112,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9304:14:91","9319:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9304:32:91"},"referencedDeclaration":35883,"src":"9304:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53117,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53115,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53328,"src":"9366:20:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9366:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9304:84:91"},{"expression":{"id":53122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9398:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53120,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53114,"src":"9436: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":53119,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"9415: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":53121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9415:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9398:58:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53123,"nodeType":"ExpressionStatement","src":"9398:58:91"},{"expression":{"id":53131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53124,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9467:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53128,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9505:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9497:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53126,"name":"address","nodeType":"ElementaryTypeName","src":"9497:7:91","typeDescriptions":{}}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53125,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9478:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9467:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53132,"nodeType":"ExpressionStatement","src":"9467:54:91"},{"expression":{"id":53140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53133,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9531:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53137,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9571:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9563:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53135,"name":"address","nodeType":"ElementaryTypeName","src":"9563:7:91","typeDescriptions":{}}},"id":53138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9563:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53134,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9543:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9531:56:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53141,"nodeType":"ExpressionStatement","src":"9531:56:91"},{"expression":{"id":53149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53142,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9597:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9647:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9639:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53144,"name":"address","nodeType":"ElementaryTypeName","src":"9639:7:91","typeDescriptions":{}}},"id":53147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9639:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53143,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9620:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9597:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53150,"nodeType":"ExpressionStatement","src":"9597:66:91"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53151,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9673:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9723:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9715:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53153,"name":"address","nodeType":"ElementaryTypeName","src":"9715:7:91","typeDescriptions":{}}},"id":53156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53152,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9696:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9673:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53159,"nodeType":"ExpressionStatement","src":"9673:66:91"},{"expression":{"id":53167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53160,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9749:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53164,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9803:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9795:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53162,"name":"address","nodeType":"ElementaryTypeName","src":"9795:7:91","typeDescriptions":{}}},"id":53165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53161,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9774:20:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9749:70:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53168,"nodeType":"ExpressionStatement","src":"9749:70:91"},{"expression":{"id":53176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53169,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52811,"src":"9829:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53173,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9881:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9873:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53171,"name":"address","nodeType":"ElementaryTypeName","src":"9873:7:91","typeDescriptions":{}}},"id":53174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53170,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9853:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9853:44:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9829:68:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53177,"nodeType":"ExpressionStatement","src":"9829:68:91"},{"expression":{"id":53185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53178,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"9907:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53182,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9951:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9943:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53180,"name":"address","nodeType":"ElementaryTypeName","src":"9943:7:91","typeDescriptions":{}}},"id":53183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9943:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53179,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9921:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9921:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9907:60:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53186,"nodeType":"ExpressionStatement","src":"9907:60:91"},{"expression":{"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53187,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"9977:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53191,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10014:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10006:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53189,"name":"address","nodeType":"ElementaryTypeName","src":"10006:7:91","typeDescriptions":{}}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10006:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53188,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9988:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9988:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9977:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53195,"nodeType":"ExpressionStatement","src":"9977:53:91"},{"expression":{"id":53203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53196,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"10040:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53200,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10075:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53198,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:91","typeDescriptions":{}}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10067:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53197,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10051:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10051:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10040:51:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53204,"nodeType":"ExpressionStatement","src":"10040:51:91"},{"assignments":[53209],"declarations":[{"constant":false,"id":53209,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10200:19:91","nodeType":"VariableDeclaration","scope":53291,"src":"10156:63:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53208,"nodeType":"UserDefinedTypeName","pathNode":{"id":53207,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10156:18:91","10175:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10156:36:91"},"referencedDeclaration":36253,"src":"10156:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53216,"initialValue":{"arguments":[{"arguments":[{"id":53213,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"10279:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10271:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53211,"name":"address","nodeType":"ElementaryTypeName","src":"10271:7:91","typeDescriptions":{}}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10271:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53210,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"10222: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":53215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10222:82:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10156:148:91"},{"expression":{"id":53221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10315:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53219,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53209,"src":"10345: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":53218,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":53911,"src":"10327: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":53220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10315:50:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53222,"nodeType":"ExpressionStatement","src":"10315:50:91"},{"expression":{"id":53230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53223,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"10375:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53227,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10419:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10411:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53225,"name":"address","nodeType":"ElementaryTypeName","src":"10411:7:91","typeDescriptions":{}}},"id":53228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10411:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53224,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"10387:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10387:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"10375:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53231,"nodeType":"ExpressionStatement","src":"10375:55:91"},{"expression":{"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53232,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"10440:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53236,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10482:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53234,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:91","typeDescriptions":{}}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53233,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"10451:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10451:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"10440:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53240,"nodeType":"ExpressionStatement","src":"10440:53:91"},{"expression":{"id":53248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53241,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10503:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53245,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10544:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10536:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"10536:7:91","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10536:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"10514:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10514:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"10503:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53249,"nodeType":"ExpressionStatement","src":"10503:52:91"},{"expression":{"id":53257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"10565:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53254,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10609:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10601:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53252,"name":"address","nodeType":"ElementaryTypeName","src":"10601:7:91","typeDescriptions":{}}},"id":53255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10601:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53251,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"10578:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10578:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"10565:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":53258,"nodeType":"ExpressionStatement","src":"10565:55:91"},{"expression":{"id":53266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53259,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10630:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53263,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10685:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53261,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:91","typeDescriptions":{}}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53260,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"10647:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"10630:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":53267,"nodeType":"ExpressionStatement","src":"10630:66:91"},{"expression":{"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53268,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10706:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53272,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10743:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10735:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53270,"name":"address","nodeType":"ElementaryTypeName","src":"10735:7:91","typeDescriptions":{}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53269,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10717:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10717:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10706:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53276,"nodeType":"ExpressionStatement","src":"10706:48:91"},{"expression":{"id":53284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53277,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"10764:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53281,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"10799:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10791:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53279,"name":"address","nodeType":"ElementaryTypeName","src":"10791:7:91","typeDescriptions":{}}},"id":53282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53278,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10775:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10764:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53285,"nodeType":"ExpressionStatement","src":"10764:46:91"},{"expression":{"arguments":[{"id":53287,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52694,"src":"10834:19:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855: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":53286,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"10821:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"10821:38:91"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9143:5:91","parameters":{"id":53091,"nodeType":"ParameterList","parameters":[],"src":"9148:2:91"},"returnParameters":{"id":53092,"nodeType":"ParameterList","parameters":[],"src":"9166:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53328,"nodeType":"FunctionDefinition","src":"10872:606:91","nodes":[],"body":{"id":53327,"nodeType":"Block","src":"10976:502:91","nodes":[],"statements":[{"assignments":[53302],"declarations":[{"constant":false,"id":53302,"mutability":"mutable","name":"params","nameLocation":"11026:6:91","nodeType":"VariableDeclaration","scope":53327,"src":"10986:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53301,"nodeType":"UserDefinedTypeName","pathNode":{"id":53300,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10986:14:91","11001:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10986:32:91"},"referencedDeclaration":35883,"src":"10986:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53324,"initialValue":{"arguments":[{"arguments":[{"id":53306,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"11111:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11149: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":53309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11135: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":53307,"name":"address","nodeType":"ElementaryTypeName","src":"11139:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53308,"nodeType":"ArrayTypeName","src":"11139:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11135: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":53305,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"11095:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11105:4:91","11128:5:91"],"names":["root","route"],"nodeType":"FunctionCall","src":"11095:58:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53313,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"11188:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53314,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"11235:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53315,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"11290:27:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":53320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11366: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":53319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11350: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":53317,"nodeType":"UserDefinedTypeName","pathNode":{"id":53316,"name":"Validator","nameLocations":["11354:9:91"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"11354:9:91"},"referencedDeclaration":50164,"src":"11354:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":53318,"nodeType":"ArrayTypeName","src":"11354:11:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11350:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":53322,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"11405: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":53303,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"11035:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11050:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"11035:32:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11082:11:91","11167:19:91","11227:6:91","11270:18:91","11331:17:91","11382:21:91"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"11035:412:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10986:461:91"},{"expression":{"id":53325,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53302,"src":"11465:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":53297,"id":53326,"nodeType":"Return","src":"11458:13:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"10881:20:91","parameters":{"id":53293,"nodeType":"ParameterList","parameters":[],"src":"10901:2:91"},"returnParameters":{"id":53297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53328,"src":"10935:39:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10935:14:91","10950:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10935:32:91"},"referencedDeclaration":35883,"src":"10935:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10934:41:91"},"scope":55675,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":53587,"nodeType":"FunctionDefinition","src":"11484:3185:91","nodes":[],"body":{"id":53586,"nodeType":"Block","src":"11594:3075:91","nodes":[],"statements":[{"assignments":[53339],"declarations":[{"constant":false,"id":53339,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"11623:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11604:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"CheckpointingFacet","nameLocations":["11604:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11604:18:91"},"referencedDeclaration":39870,"src":"11604:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53344,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53341,"nodeType":"UserDefinedTypeName","pathNode":{"id":53340,"name":"CheckpointingFacet","nameLocations":["11648:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"11648:18:91"},"referencedDeclaration":39870,"src":"11648:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11604:64:91"},{"assignments":[53347],"declarations":[{"constant":false,"id":53347,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"11697:18:91","nodeType":"VariableDeclaration","scope":53586,"src":"11678:37:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53346,"nodeType":"UserDefinedTypeName","pathNode":{"id":53345,"name":"XnetMessagingFacet","nameLocations":["11678:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11678:18:91"},"referencedDeclaration":40144,"src":"11678:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11718:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53349,"nodeType":"UserDefinedTypeName","pathNode":{"id":53348,"name":"XnetMessagingFacet","nameLocations":["11722:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"11722:18:91"},"referencedDeclaration":40144,"src":"11722:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11718:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"11678:64:91"},{"assignments":[53355],"declarations":[{"constant":false,"id":53355,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"11773:20:91","nodeType":"VariableDeclaration","scope":53586,"src":"11752:41:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53354,"nodeType":"UserDefinedTypeName","pathNode":{"id":53353,"name":"TopDownFinalityFacet","nameLocations":["11752:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11752:20:91"},"referencedDeclaration":40071,"src":"11752:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53360,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11796:24:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53357,"nodeType":"UserDefinedTypeName","pathNode":{"id":53356,"name":"TopDownFinalityFacet","nameLocations":["11800:20:91"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"11800:20:91"},"referencedDeclaration":40071,"src":"11800:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11796:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"11752:70:91"},{"assignments":[53363],"declarations":[{"constant":false,"id":53363,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"11852:19:91","nodeType":"VariableDeclaration","scope":53586,"src":"11832:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53362,"nodeType":"UserDefinedTypeName","pathNode":{"id":53361,"name":"BottomUpRouterFacet","nameLocations":["11832:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11832:19:91"},"referencedDeclaration":39601,"src":"11832:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53368,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11874:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53365,"nodeType":"UserDefinedTypeName","pathNode":{"id":53364,"name":"BottomUpRouterFacet","nameLocations":["11878:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11878:19:91"},"referencedDeclaration":39601,"src":"11878:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11874:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11832:67:91"},{"assignments":[53371],"declarations":[{"constant":false,"id":53371,"mutability":"mutable","name":"manager","nameLocation":"11930:7:91","nodeType":"VariableDeclaration","scope":53586,"src":"11910:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53370,"nodeType":"UserDefinedTypeName","pathNode":{"id":53369,"name":"GatewayManagerFacet","nameLocations":["11910:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11910:19:91"},"referencedDeclaration":38870,"src":"11910:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53376,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11940:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53373,"nodeType":"UserDefinedTypeName","pathNode":{"id":53372,"name":"GatewayManagerFacet","nameLocations":["11944:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11944:19:91"},"referencedDeclaration":38870,"src":"11944:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11940:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11910:55:91"},{"assignments":[53379],"declarations":[{"constant":false,"id":53379,"mutability":"mutable","name":"getter","nameLocation":"11994:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"11975:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53378,"nodeType":"UserDefinedTypeName","pathNode":{"id":53377,"name":"GatewayGetterFacet","nameLocations":["11975:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11975:18:91"},"referencedDeclaration":38317,"src":"11975:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12003:22:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53381,"nodeType":"UserDefinedTypeName","pathNode":{"id":53380,"name":"GatewayGetterFacet","nameLocations":["12007:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"12007:18:91"},"referencedDeclaration":38317,"src":"12007:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11975:52:91"},{"assignments":[53387],"declarations":[{"constant":false,"id":53387,"mutability":"mutable","name":"messenger","nameLocation":"12059:9:91","nodeType":"VariableDeclaration","scope":53586,"src":"12037:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53386,"nodeType":"UserDefinedTypeName","pathNode":{"id":53385,"name":"GatewayMessengerFacet","nameLocations":["12037:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12037:21:91"},"referencedDeclaration":39235,"src":"12037:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12071:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53389,"nodeType":"UserDefinedTypeName","pathNode":{"id":53388,"name":"GatewayMessengerFacet","nameLocations":["12075:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"12075:21:91"},"referencedDeclaration":39235,"src":"12075:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12071:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12037:61:91"},{"assignments":[53395],"declarations":[{"constant":false,"id":53395,"mutability":"mutable","name":"cutter","nameLocation":"12124:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12108:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53394,"nodeType":"UserDefinedTypeName","pathNode":{"id":53393,"name":"DiamondCutFacet","nameLocations":["12108:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12108:15:91"},"referencedDeclaration":36918,"src":"12108:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53400,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12133:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53397,"nodeType":"UserDefinedTypeName","pathNode":{"id":53396,"name":"DiamondCutFacet","nameLocations":["12137:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"12137:15:91"},"referencedDeclaration":36918,"src":"12137:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12133:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12108:46:91"},{"assignments":[53403],"declarations":[{"constant":false,"id":53403,"mutability":"mutable","name":"louper","nameLocation":"12182:6:91","nodeType":"VariableDeclaration","scope":53586,"src":"12164:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53402,"nodeType":"UserDefinedTypeName","pathNode":{"id":53401,"name":"DiamondLoupeFacet","nameLocations":["12164:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12164:17:91"},"referencedDeclaration":37355,"src":"12164:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53408,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12191:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53405,"nodeType":"UserDefinedTypeName","pathNode":{"id":53404,"name":"DiamondLoupeFacet","nameLocations":["12195:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"12195:17:91"},"referencedDeclaration":37355,"src":"12195:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12191:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12164:50:91"},{"assignments":[53414],"declarations":[{"constant":false,"id":53414,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"12252:12:91","nodeType":"VariableDeclaration","scope":53586,"src":"12225: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":53412,"nodeType":"UserDefinedTypeName","pathNode":{"id":53411,"name":"IDiamond.FacetCut","nameLocations":["12225:8:91","12234:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12225:17:91"},"referencedDeclaration":40159,"src":"12225:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53413,"nodeType":"ArrayTypeName","src":"12225:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53421,"initialValue":{"arguments":[{"hexValue":"39","id":53419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12291: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":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12267: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":53416,"nodeType":"UserDefinedTypeName","pathNode":{"id":53415,"name":"IDiamond.FacetCut","nameLocations":["12271:8:91","12280:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"12271:17:91"},"referencedDeclaration":40159,"src":"12271:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53417,"nodeType":"ArrayTypeName","src":"12271:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267: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":"12225:68:91"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53422,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12304:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53424,"indexExpression":{"hexValue":"30","id":53423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317: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":"12304:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53429,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53339,"src":"12394:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12386:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53427,"name":"address","nodeType":"ElementaryTypeName","src":"12386:7:91","typeDescriptions":{}}},"id":53430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53431,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12439:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12448:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12439:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12463:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12439:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53434,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12503: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":53425,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12336:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12345:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12336:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12372:12:91","12431:6:91","12484:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12336:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12322:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12304:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53438,"nodeType":"ExpressionStatement","src":"12304:253:91"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53439,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12568:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53441,"indexExpression":{"hexValue":"36","id":53440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12581: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":"12568:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53446,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53347,"src":"12658:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12650:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53444,"name":"address","nodeType":"ElementaryTypeName","src":"12650:7:91","typeDescriptions":{}}},"id":53447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12650:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53448,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12703:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12712:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12703:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12727:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12703:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53451,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12767: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":53442,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12600:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12609:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12600:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12636:12:91","12695:6:91","12748:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12600:211:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12586:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12568:253:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53455,"nodeType":"ExpressionStatement","src":"12568:253:91"},{"expression":{"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"12832:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53458,"indexExpression":{"hexValue":"37","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845: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":"12832:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53463,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53355,"src":"12922:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12914:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53461,"name":"address","nodeType":"ElementaryTypeName","src":"12914:7:91","typeDescriptions":{}}},"id":53464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12914:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12969:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12978:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12969:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12993:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12969:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53468,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13033: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":53459,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12864:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12873:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12864:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12900:12:91","12961:6:91","13014:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12864:215:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12850:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12832:257:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53472,"nodeType":"ExpressionStatement","src":"12832:257:91"},{"expression":{"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53473,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13100:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53475,"indexExpression":{"hexValue":"38","id":53474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113: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":"13100:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53480,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53363,"src":"13190:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13182:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53478,"name":"address","nodeType":"ElementaryTypeName","src":"13182:7:91","typeDescriptions":{}}},"id":53481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13182:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13236:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13245:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13236:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13260:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13236:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53485,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13300: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":53476,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13132:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13141:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13132:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13168:12:91","13228:6:91","13281:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13132:213:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13118:237:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13100:255:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53489,"nodeType":"ExpressionStatement","src":"13100:255:91"},{"expression":{"id":53505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53490,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13366:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53492,"indexExpression":{"hexValue":"31","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379: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":"13366:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53497,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53371,"src":"13456:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13448:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53495,"name":"address","nodeType":"ElementaryTypeName","src":"13448:7:91","typeDescriptions":{}}},"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13448:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13490:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13499:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13490:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13514:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13490:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53502,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13554: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":53493,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13398:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13407:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13398:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13434:12:91","13482:6:91","13535:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13398:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13384:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13366:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53506,"nodeType":"ExpressionStatement","src":"13366:231:91"},{"expression":{"id":53522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53507,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13608:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53509,"indexExpression":{"hexValue":"32","id":53508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621: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":"13608:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53514,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53379,"src":"13698:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13690:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53512,"name":"address","nodeType":"ElementaryTypeName","src":"13690:7:91","typeDescriptions":{}}},"id":53515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13731:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13740:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13731:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13755:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13731:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53519,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13795: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":53510,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13640:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13649:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13640:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13676:12:91","13723:6:91","13776:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13640:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13626:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13608:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53523,"nodeType":"ExpressionStatement","src":"13608:229:91"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53524,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"13848:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53526,"indexExpression":{"hexValue":"33","id":53525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13861: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":"13848:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53531,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53387,"src":"13938:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13930:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53529,"name":"address","nodeType":"ElementaryTypeName","src":"13930:7:91","typeDescriptions":{}}},"id":53532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13930:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53533,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13974:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13983:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13974:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13998:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13974:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53536,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"14038: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":53527,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13880:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13889:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13880:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13916:12:91","13966:6:91","14019:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13880:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13866:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13848:235:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53540,"nodeType":"ExpressionStatement","src":"13848:235:91"},{"expression":{"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53541,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14094:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53543,"indexExpression":{"hexValue":"34","id":53542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107: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":"14094:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53548,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53403,"src":"14184:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14176:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53546,"name":"address","nodeType":"ElementaryTypeName","src":"14176:7:91","typeDescriptions":{}}},"id":53549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14176:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53550,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14217:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14226:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14217:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14241:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14217:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53553,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"14281: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":53544,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:91","14209:6:91","14262:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:186:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:210:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14094:228:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53557,"nodeType":"ExpressionStatement","src":"14094:228:91"},{"expression":{"id":53573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53558,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14333:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53560,"indexExpression":{"hexValue":"35","id":53559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346: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":"14333:15:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53565,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53395,"src":"14423:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14415:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53563,"name":"address","nodeType":"ElementaryTypeName","src":"14415:7:91","typeDescriptions":{}}},"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14415:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53567,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14456:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14456:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14480:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14456:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53570,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"14520: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":53561,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14365:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14365:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14401:12:91","14448:6:91","14501:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14365:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14351:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14333:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53574,"nodeType":"ExpressionStatement","src":"14333:229:91"},{"expression":{"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53575,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14573:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53579,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53414,"src":"14609:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53580,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"14623: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":53578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14590: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":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"GatewayDiamond","nameLocations":["14594:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"14594:14:91"},"referencedDeclaration":36170,"src":"14594:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14590:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"14573:57:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53583,"nodeType":"ExpressionStatement","src":"14573:57:91"},{"expression":{"id":53584,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"14648:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53336,"id":53585,"nodeType":"Return","src":"14641:21:91"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"11493:20:91","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53331,"mutability":"mutable","name":"params","nameLocation":"11554:6:91","nodeType":"VariableDeclaration","scope":53587,"src":"11514:46:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53330,"nodeType":"UserDefinedTypeName","pathNode":{"id":53329,"name":"GatewayDiamond.ConstructorParams","nameLocations":["11514:14:91","11529:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"11514:32:91"},"referencedDeclaration":35883,"src":"11514:32:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"11513:48:91"},"returnParameters":{"id":53336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53587,"src":"11578:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"GatewayDiamond","nameLocations":["11578:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"11578:14:91"},"referencedDeclaration":36170,"src":"11578:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"11577:16:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53701,"nodeType":"FunctionDefinition","src":"14675:1613:91","nodes":[],"body":{"id":53700,"nodeType":"Block","src":"14951:1337:91","nodes":[],"statements":[{"assignments":[53611],"declarations":[{"constant":false,"id":53611,"mutability":"mutable","name":"diamondCut","nameLocation":"14988:10:91","nodeType":"VariableDeclaration","scope":53700,"src":"14961: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":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"IDiamond.FacetCut","nameLocations":["14961:8:91","14970:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14961:17:91"},"referencedDeclaration":40159,"src":"14961:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53610,"nodeType":"ArrayTypeName","src":"14961:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53618,"initialValue":{"arguments":[{"hexValue":"35","id":53616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15025: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":53615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15001: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":53613,"nodeType":"UserDefinedTypeName","pathNode":{"id":53612,"name":"IDiamond.FacetCut","nameLocations":["15005:8:91","15014:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15005:17:91"},"referencedDeclaration":40159,"src":"15005:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53614,"nodeType":"ArrayTypeName","src":"15005:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15001: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":"14961:66:91"},{"expression":{"id":53631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53619,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15038:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53621,"indexExpression":{"hexValue":"30","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15049: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":"15038:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53624,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53592,"src":"15118:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53625,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15150:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15159:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15150:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15174:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15150:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53628,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"15214: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":53622,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15068:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15077:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15068:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15104:12:91","15142:6:91","15195:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15068:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15054:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15038:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53632,"nodeType":"ExpressionStatement","src":"15038:218:91"},{"expression":{"id":53645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53633,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15267:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53635,"indexExpression":{"hexValue":"31","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15278: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":"15267:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53638,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15347:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53639,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15380:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15389:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15380:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15404:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15380:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53642,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"15444: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":53636,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15297:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15306:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15297:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15333:12:91","15372:6:91","15425:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15297:180:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15283:204:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15267:220:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53646,"nodeType":"ExpressionStatement","src":"15267:220:91"},{"expression":{"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53647,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15498:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53649,"indexExpression":{"hexValue":"32","id":53648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15509: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":"15498:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53652,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53596,"src":"15578:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53653,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15610:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15619:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15610:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15634:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15610:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53656,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"15674: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":53650,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15528:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15537:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15528:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15564:12:91","15602:6:91","15655:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15528:178:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15514:202:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15498:218:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53660,"nodeType":"ExpressionStatement","src":"15498:218:91"},{"expression":{"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53661,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15727:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53663,"indexExpression":{"hexValue":"33","id":53662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15738: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":"15727:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53666,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53598,"src":"15807:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53667,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15841:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15850:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15841:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15865:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15841:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53670,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"15905: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":53664,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15757:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15766:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15757:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15793:12:91","15833:6:91","15886:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15757:182:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15743:206:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15727:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53674,"nodeType":"ExpressionStatement","src":"15727:222:91"},{"expression":{"id":53687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"15960:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53677,"indexExpression":{"hexValue":"34","id":53676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971: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":"15960:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53680,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53600,"src":"16040:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53681,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"16078:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"16078:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16102:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"16078:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53684,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"16142: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":53678,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15990:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15990:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16026:12:91","16070:6:91","16123:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15990:190:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15976:214:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15960:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53688,"nodeType":"ExpressionStatement","src":"15960:230:91"},{"expression":{"id":53696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53689,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16201:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53693,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53611,"src":"16236:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53694,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"16248: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":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16213: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":53691,"nodeType":"UserDefinedTypeName","pathNode":{"id":53690,"name":"SubnetActorDiamond","nameLocations":["16217:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16217:18:91"},"referencedDeclaration":36615,"src":"16217:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16213:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"16201:54:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53697,"nodeType":"ExpressionStatement","src":"16201:54:91"},{"expression":{"id":53698,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"16272:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53605,"id":53699,"nodeType":"Return","src":"16265:16:91"}]},"functionSelector":"ea1c89ed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"14684:35:91","parameters":{"id":53601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53590,"mutability":"mutable","name":"params","nameLocation":"14773:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14729:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14729:18:91","14748:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14729:36:91"},"referencedDeclaration":36253,"src":"14729:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53592,"mutability":"mutable","name":"getter","nameLocation":"14797:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14789:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53591,"name":"address","nodeType":"ElementaryTypeName","src":"14789:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53594,"mutability":"mutable","name":"manager","nameLocation":"14821:7:91","nodeType":"VariableDeclaration","scope":53701,"src":"14813:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53593,"name":"address","nodeType":"ElementaryTypeName","src":"14813:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53596,"mutability":"mutable","name":"pauser","nameLocation":"14846:6:91","nodeType":"VariableDeclaration","scope":53701,"src":"14838:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53595,"name":"address","nodeType":"ElementaryTypeName","src":"14838:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53598,"mutability":"mutable","name":"rewarder","nameLocation":"14870:8:91","nodeType":"VariableDeclaration","scope":53701,"src":"14862:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53597,"name":"address","nodeType":"ElementaryTypeName","src":"14862:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53600,"mutability":"mutable","name":"checkpointer","nameLocation":"14896:12:91","nodeType":"VariableDeclaration","scope":53701,"src":"14888:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53599,"name":"address","nodeType":"ElementaryTypeName","src":"14888:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14719:195:91"},"returnParameters":{"id":53605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53701,"src":"14931:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53603,"nodeType":"UserDefinedTypeName","pathNode":{"id":53602,"name":"SubnetActorDiamond","nameLocations":["14931:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14931:18:91"},"referencedDeclaration":36615,"src":"14931:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14930:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53911,"nodeType":"FunctionDefinition","src":"16294:2480:91","nodes":[],"body":{"id":53910,"nodeType":"Block","src":"16409:2365:91","nodes":[],"statements":[{"assignments":[53712],"declarations":[{"constant":false,"id":53712,"mutability":"mutable","name":"manager","nameLocation":"16443:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"16419:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53711,"nodeType":"UserDefinedTypeName","pathNode":{"id":53710,"name":"SubnetActorManagerFacet","nameLocations":["16419:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16419:23:91"},"referencedDeclaration":51946,"src":"16419:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16453:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"SubnetActorManagerFacet","nameLocations":["16457:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"16457:23:91"},"referencedDeclaration":51946,"src":"16457:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"16419:63:91"},{"assignments":[53720],"declarations":[{"constant":false,"id":53720,"mutability":"mutable","name":"getter","nameLocation":"16515:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16492:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53719,"nodeType":"UserDefinedTypeName","pathNode":{"id":53718,"name":"SubnetActorGetterFacet","nameLocations":["16492:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16492:22:91"},"referencedDeclaration":51235,"src":"16492:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16524:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53722,"nodeType":"UserDefinedTypeName","pathNode":{"id":53721,"name":"SubnetActorGetterFacet","nameLocations":["16528:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"16528:22:91"},"referencedDeclaration":51235,"src":"16528:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16524:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"16492:60:91"},{"assignments":[53728],"declarations":[{"constant":false,"id":53728,"mutability":"mutable","name":"pauser","nameLocation":"16584:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16562:28:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"},"typeName":{"id":53727,"nodeType":"UserDefinedTypeName","pathNode":{"id":53726,"name":"SubnetActorPauseFacet","nameLocations":["16562:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16562:21:91"},"referencedDeclaration":51991,"src":"16562:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"visibility":"internal"}],"id":53733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16593:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53730,"nodeType":"UserDefinedTypeName","pathNode":{"id":53729,"name":"SubnetActorPauseFacet","nameLocations":["16597:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"16597:21:91"},"referencedDeclaration":51991,"src":"16597:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16593:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"VariableDeclarationStatement","src":"16562:58:91"},{"assignments":[53736],"declarations":[{"constant":false,"id":53736,"mutability":"mutable","name":"rewarder","nameLocation":"16653:8:91","nodeType":"VariableDeclaration","scope":53910,"src":"16630:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"},"typeName":{"id":53735,"nodeType":"UserDefinedTypeName","pathNode":{"id":53734,"name":"SubnetActorRewardFacet","nameLocations":["16630:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16630:22:91"},"referencedDeclaration":52158,"src":"16630:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"visibility":"internal"}],"id":53741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16664:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":53738,"nodeType":"UserDefinedTypeName","pathNode":{"id":53737,"name":"SubnetActorRewardFacet","nameLocations":["16668:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"16668:22:91"},"referencedDeclaration":52158,"src":"16668:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":53740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16664:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"VariableDeclarationStatement","src":"16630:62:91"},{"assignments":[53744],"declarations":[{"constant":false,"id":53744,"mutability":"mutable","name":"checkpointer","nameLocation":"16732:12:91","nodeType":"VariableDeclaration","scope":53910,"src":"16702:42:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"SubnetActorCheckpointingFacet","nameLocations":["16702:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16702:29:91"},"referencedDeclaration":50577,"src":"16702:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"visibility":"internal"}],"id":53749,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16747:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53746,"nodeType":"UserDefinedTypeName","pathNode":{"id":53745,"name":"SubnetActorCheckpointingFacet","nameLocations":["16751:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"16751:29:91"},"referencedDeclaration":50577,"src":"16751:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"16702:80:91"},{"assignments":[53752],"declarations":[{"constant":false,"id":53752,"mutability":"mutable","name":"louper","nameLocation":"16811:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16793:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53751,"nodeType":"UserDefinedTypeName","pathNode":{"id":53750,"name":"DiamondLoupeFacet","nameLocations":["16793:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16793:17:91"},"referencedDeclaration":37355,"src":"16793:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53757,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16820:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"DiamondLoupeFacet","nameLocations":["16824:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"16824:17:91"},"referencedDeclaration":37355,"src":"16824:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16820:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"16793:50:91"},{"assignments":[53760],"declarations":[{"constant":false,"id":53760,"mutability":"mutable","name":"cutter","nameLocation":"16869:6:91","nodeType":"VariableDeclaration","scope":53910,"src":"16853:22:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53759,"nodeType":"UserDefinedTypeName","pathNode":{"id":53758,"name":"DiamondCutFacet","nameLocations":["16853:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16853:15:91"},"referencedDeclaration":36918,"src":"16853:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53765,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16878:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53762,"nodeType":"UserDefinedTypeName","pathNode":{"id":53761,"name":"DiamondCutFacet","nameLocations":["16882:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"16882:15:91"},"referencedDeclaration":36918,"src":"16882:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16878:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"16853:46:91"},{"assignments":[53771],"declarations":[{"constant":false,"id":53771,"mutability":"mutable","name":"diamondCut","nameLocation":"16937:10:91","nodeType":"VariableDeclaration","scope":53910,"src":"16910: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":53769,"nodeType":"UserDefinedTypeName","pathNode":{"id":53768,"name":"IDiamond.FacetCut","nameLocations":["16910:8:91","16919:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16910:17:91"},"referencedDeclaration":40159,"src":"16910:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53770,"nodeType":"ArrayTypeName","src":"16910:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"hexValue":"37","id":53776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16974: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":53775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16950: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":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"IDiamond.FacetCut","nameLocations":["16954:8:91","16963:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"16954:17:91"},"referencedDeclaration":40159,"src":"16954:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53774,"nodeType":"ArrayTypeName","src":"16954:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16950: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":"16910:66:91"},{"expression":{"id":53794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53779,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"16987:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53781,"indexExpression":{"hexValue":"30","id":53780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16998: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":"16987:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53786,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"17075:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":53785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17067:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53784,"name":"address","nodeType":"ElementaryTypeName","src":"17067:7:91","typeDescriptions":{}}},"id":53787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53788,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17109:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17118:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17109:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17133:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17109:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53791,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"17173: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":53782,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17017:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17026:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17017:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17053:12:91","17101:6:91","17154:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17017:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17003:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"16987:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53795,"nodeType":"ExpressionStatement","src":"16987:229:91"},{"expression":{"id":53811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53796,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17227:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53798,"indexExpression":{"hexValue":"31","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17238: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":"17227:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53803,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53720,"src":"17315:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":53802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17307:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53801,"name":"address","nodeType":"ElementaryTypeName","src":"17307:7:91","typeDescriptions":{}}},"id":53804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17307:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53805,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17348:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17357:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17348:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17372:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17348:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53808,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"17412: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":53799,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17257:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17257:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17293:12:91","17340:6:91","17393:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17257:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17243:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17227:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53812,"nodeType":"ExpressionStatement","src":"17227:227:91"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17465:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"32","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17476: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":"17465:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"pauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53728,"src":"17553:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17545:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17545:7:91","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17545:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17586:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17595:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17586:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17610:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17586:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"17650: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":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17495:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17495:17:91","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":["17531:12:91","17578:6:91","17631:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17495:187:91","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":"17481:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17465:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17465:227:91"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17703:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"33","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17714: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":"17703:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53736,"src":"17791:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17783:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17783:7:91","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17783:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17826:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17835:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17826:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17850:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17826:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"17890: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":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17733:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17742:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17733:17:91","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":["17769:12:91","17818:6:91","17871:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17733:191:91","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":"17719:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17703:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17703:231:91"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"17945:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"34","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17956: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":"17945:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"checkpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18033:12:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18025:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:91","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18025:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18072:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18081:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18072:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18096:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18072:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"18136: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":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17975:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17984:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17975:17:91","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":["18011:12:91","18064:6:91","18117:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17975:199:91","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":"17961:223:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17945:239:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17945:239:91"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18195:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"35","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18206: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":"18195:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53760,"src":"18283:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18275:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18275:7:91","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18275:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18316:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18325:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18316:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18340:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18316:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"18380: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":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18225:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18225:17:91","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":["18261:12:91","18308:6:91","18361:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18225:187:91","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":"18211:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18195:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18195:227:91"},{"expression":{"id":53896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53881,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18433:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53883,"indexExpression":{"hexValue":"36","id":53882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18444: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":"18433:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53888,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18521:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18513:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53886,"name":"address","nodeType":"ElementaryTypeName","src":"18513:7:91","typeDescriptions":{}}},"id":53889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18513:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53890,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18554:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18563:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18554:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18578:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18554:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53893,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"18618: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":53884,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18463:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18472:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18463:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18499:12:91","18546:6:91","18599:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18463:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18449:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18433:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53897,"nodeType":"ExpressionStatement","src":"18433:227:91"},{"assignments":[53900],"declarations":[{"constant":false,"id":53900,"mutability":"mutable","name":"diamond","nameLocation":"18690:7:91","nodeType":"VariableDeclaration","scope":53910,"src":"18671:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53899,"nodeType":"UserDefinedTypeName","pathNode":{"id":53898,"name":"SubnetActorDiamond","nameLocations":["18671:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18671:18:91"},"referencedDeclaration":36615,"src":"18671:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53907,"initialValue":{"arguments":[{"id":53904,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53771,"src":"18723:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53905,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"18735: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":53903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18700: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":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"SubnetActorDiamond","nameLocations":["18704:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18704:18:91"},"referencedDeclaration":36615,"src":"18704:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18700:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"18671:71:91"},{"expression":{"id":53908,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"18760:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53709,"id":53909,"nodeType":"Return","src":"18753:14:91"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16303:17:91","parameters":{"id":53705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53704,"mutability":"mutable","name":"params","nameLocation":"16365:6:91","nodeType":"VariableDeclaration","scope":53911,"src":"16321:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53703,"nodeType":"UserDefinedTypeName","pathNode":{"id":53702,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["16321:18:91","16340:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"16321:36:91"},"referencedDeclaration":36253,"src":"16321:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"16320:52:91"},"returnParameters":{"id":53709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53911,"src":"16389:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53707,"nodeType":"UserDefinedTypeName","pathNode":{"id":53706,"name":"SubnetActorDiamond","nameLocations":["16389:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16389:18:91"},"referencedDeclaration":36615,"src":"16389:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16388:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53940,"nodeType":"FunctionDefinition","src":"18780:522:91","nodes":[],"body":{"id":53939,"nodeType":"Block","src":"19024:278:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":53928,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53913,"src":"19065:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53929,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53916,"src":"19094:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53930,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53918,"src":"19118:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53931,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53920,"src":"19156:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53932,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53922,"src":"19184:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53933,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53924,"src":"19210:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53934,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"19243:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19258:10:91","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"19243:25:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19282: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":53927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53911,53940,54243],"referencedDeclaration":54243,"src":"19034: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":53937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19034:261:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53938,"nodeType":"ExpressionStatement","src":"19034:261:91"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"18789:17:91","parameters":{"id":53925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53913,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"18824:15:91","nodeType":"VariableDeclaration","scope":53940,"src":"18816:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53912,"name":"address","nodeType":"ElementaryTypeName","src":"18816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53916,"mutability":"mutable","name":"_consensus","nameLocation":"18863:10:91","nodeType":"VariableDeclaration","scope":53940,"src":"18849:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53915,"nodeType":"UserDefinedTypeName","pathNode":{"id":53914,"name":"ConsensusType","nameLocations":["18849:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"18849:13:91"},"referencedDeclaration":37359,"src":"18849:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"18891:24:91","nodeType":"VariableDeclaration","scope":53940,"src":"18883:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53917,"name":"uint256","nodeType":"ElementaryTypeName","src":"18883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53920,"mutability":"mutable","name":"_minValidators","nameLocation":"18932:14:91","nodeType":"VariableDeclaration","scope":53940,"src":"18925:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53919,"name":"uint64","nodeType":"ElementaryTypeName","src":"18925:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53922,"mutability":"mutable","name":"_checkPeriod","nameLocation":"18963:12:91","nodeType":"VariableDeclaration","scope":53940,"src":"18956:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53921,"name":"uint64","nodeType":"ElementaryTypeName","src":"18956:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53924,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"18991:19:91","nodeType":"VariableDeclaration","scope":53940,"src":"18985:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53923,"name":"uint8","nodeType":"ElementaryTypeName","src":"18985:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18806:210:91"},"returnParameters":{"id":53926,"nodeType":"ParameterList","parameters":[],"src":"19024:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54243,"nodeType":"FunctionDefinition","src":"19308:3730:91","nodes":[],"body":{"id":54242,"nodeType":"Block","src":"19631:3407:91","nodes":[],"statements":[{"assignments":[53963],"declarations":[{"constant":false,"id":53963,"mutability":"mutable","name":"_parentId","nameLocation":"19657:9:91","nodeType":"VariableDeclaration","scope":54242,"src":"19641:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53962,"nodeType":"UserDefinedTypeName","pathNode":{"id":53961,"name":"SubnetID","nameLocations":["19641:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"19641:8:91"},"referencedDeclaration":50030,"src":"19641:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53972,"initialValue":{"arguments":[{"id":53965,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"19678:15:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19709: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":53968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19695: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":53966,"name":"address","nodeType":"ElementaryTypeName","src":"19699:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53967,"nodeType":"ArrayTypeName","src":"19699:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19695: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":53964,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"19669:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19669:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"19641:71:91"},{"expression":{"id":53978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53973,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"19723:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19735:27:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53975,"nodeType":"UserDefinedTypeName","pathNode":{"id":53974,"name":"SubnetActorManagerFacet","nameLocations":["19739:23:91"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"19739:23:91"},"referencedDeclaration":51946,"src":"19739:23:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}},"id":53977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19735:29:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"19723:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":53979,"nodeType":"ExpressionStatement","src":"19723:41:91"},{"expression":{"id":53985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53980,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"19774:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19785:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53982,"nodeType":"UserDefinedTypeName","pathNode":{"id":53981,"name":"SubnetActorGetterFacet","nameLocations":["19789:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"19789:22:91"},"referencedDeclaration":51235,"src":"19789:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"19774:39:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":53986,"nodeType":"ExpressionStatement","src":"19774:39:91"},{"expression":{"id":53992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19823:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19834:25:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"function () returns (contract SubnetActorPauseFacet)"},"typeName":{"id":53989,"nodeType":"UserDefinedTypeName","pathNode":{"id":53988,"name":"SubnetActorPauseFacet","nameLocations":["19838:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"19838:21:91"},"referencedDeclaration":51991,"src":"19838:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}},"id":53991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19834:27:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"19823:38:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":53993,"nodeType":"ExpressionStatement","src":"19823:38:91"},{"expression":{"id":53999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53994,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19871:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19888:33:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"function () returns (contract SubnetActorCheckpointingFacet)"},"typeName":{"id":53996,"nodeType":"UserDefinedTypeName","pathNode":{"id":53995,"name":"SubnetActorCheckpointingFacet","nameLocations":["19892:29:91"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"19892:29:91"},"referencedDeclaration":50577,"src":"19892:29:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}},"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19888:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"19871:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54000,"nodeType":"ExpressionStatement","src":"19871:52:91"},{"expression":{"id":54006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54001,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"19933:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19946:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"function () returns (contract SubnetActorRewardFacet)"},"typeName":{"id":54003,"nodeType":"UserDefinedTypeName","pathNode":{"id":54002,"name":"SubnetActorRewardFacet","nameLocations":["19950:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"19950:22:91"},"referencedDeclaration":52158,"src":"19950:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19946:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"19933:41:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54007,"nodeType":"ExpressionStatement","src":"19933:41:91"},{"expression":{"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54008,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"19984:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19995:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54010,"nodeType":"UserDefinedTypeName","pathNode":{"id":54009,"name":"DiamondCutFacet","nameLocations":["19999:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"19999:15:91"},"referencedDeclaration":36918,"src":"19999:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19995:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19984:32:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54014,"nodeType":"ExpressionStatement","src":"19984:32:91"},{"expression":{"id":54020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54015,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"20026:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20037:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"DiamondLoupeFacet","nameLocations":["20041:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20041:17:91"},"referencedDeclaration":37355,"src":"20041:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20037:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"20026:34:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54021,"nodeType":"ExpressionStatement","src":"20026:34:91"},{"assignments":[54027],"declarations":[{"constant":false,"id":54027,"mutability":"mutable","name":"diamondCut","nameLocation":"20098:10:91","nodeType":"VariableDeclaration","scope":54242,"src":"20071: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":54025,"nodeType":"UserDefinedTypeName","pathNode":{"id":54024,"name":"IDiamond.FacetCut","nameLocations":["20071:8:91","20080:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20071:17:91"},"referencedDeclaration":40159,"src":"20071:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54026,"nodeType":"ArrayTypeName","src":"20071:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54034,"initialValue":{"arguments":[{"hexValue":"37","id":54032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20135: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":54031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20111: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":54029,"nodeType":"UserDefinedTypeName","pathNode":{"id":54028,"name":"IDiamond.FacetCut","nameLocations":["20115:8:91","20124:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20115:17:91"},"referencedDeclaration":40159,"src":"20115:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54030,"nodeType":"ArrayTypeName","src":"20115:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20111: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":"20071:66:91"},{"expression":{"id":54050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54035,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20148:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54037,"indexExpression":{"hexValue":"30","id":54036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20159: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":"20148:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54042,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"20236:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20228:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54040,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:91","typeDescriptions":{}}},"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20228:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54044,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20272:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20281:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20272:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20296:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20272:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54047,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52898,"src":"20336: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":54038,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20178:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20187:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20178:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20214:12:91","20264:6:91","20317:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20178:191:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20164:215:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20148:231:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54051,"nodeType":"ExpressionStatement","src":"20148:231:91"},{"expression":{"id":54067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54052,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20390:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54054,"indexExpression":{"hexValue":"31","id":54053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20401: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":"20390:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54059,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"20478:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20470:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54057,"name":"address","nodeType":"ElementaryTypeName","src":"20470:7:91","typeDescriptions":{}}},"id":54060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20470:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54061,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20513:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20522:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20513:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20537:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20513:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54064,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"20577: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":54055,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20420:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20429:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20420:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20456:12:91","20505:6:91","20558:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20420:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20406:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20390:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54068,"nodeType":"ExpressionStatement","src":"20390:229:91"},{"expression":{"id":54084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54069,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20630:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54071,"indexExpression":{"hexValue":"32","id":54070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20641: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":"20630:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54076,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"20718:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}],"id":54075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20710:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54074,"name":"address","nodeType":"ElementaryTypeName","src":"20710:7:91","typeDescriptions":{}}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20710:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54078,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20753:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20762:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20753:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20777:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20753:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54081,"name":"saPauserSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52901,"src":"20817: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":54072,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20660:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20669:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20660:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20696:12:91","20745:6:91","20798:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20660:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20646:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20630:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54085,"nodeType":"ExpressionStatement","src":"20630:229:91"},{"expression":{"id":54101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54086,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"20870:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54088,"indexExpression":{"hexValue":"33","id":54087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20881: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":"20870:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54093,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"20958:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}],"id":54092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20950:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54091,"name":"address","nodeType":"ElementaryTypeName","src":"20950:7:91","typeDescriptions":{}}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20950:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54095,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20995:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21004:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20995:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21019:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20995:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54098,"name":"saRewarderSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"21059: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":54089,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20900:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20909:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20900:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20936:12:91","20987:6:91","21040:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20900:193:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20886:217:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20870:233:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54102,"nodeType":"ExpressionStatement","src":"20870:233:91"},{"expression":{"id":54118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54103,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21114:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54105,"indexExpression":{"hexValue":"34","id":54104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21125: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":"21114:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54110,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"21202:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}],"id":54109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21194:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54108,"name":"address","nodeType":"ElementaryTypeName","src":"21194:7:91","typeDescriptions":{}}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21194:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54112,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21243:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21252:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21243:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21243:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54115,"name":"saCheckpointerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52907,"src":"21307: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":54106,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21144:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21153:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21144:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21180:12:91","21235:6:91","21288:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21144:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21130:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21114:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54119,"nodeType":"ExpressionStatement","src":"21114:241:91"},{"expression":{"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54120,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21366:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54122,"indexExpression":{"hexValue":"35","id":54121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21377: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":"21366:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54127,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"21454:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21446:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54125,"name":"address","nodeType":"ElementaryTypeName","src":"21446:7:91","typeDescriptions":{}}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54129,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21489:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21498:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21489:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21513:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21489:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54132,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52913,"src":"21553: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":54123,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21396:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21396:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21432:12:91","21481:6:91","21534:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21396:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54134,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21382:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21366:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54136,"nodeType":"ExpressionStatement","src":"21366:229:91"},{"expression":{"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54137,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21606:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54139,"indexExpression":{"hexValue":"36","id":54138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21617: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":"21606:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54144,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"21694:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21686:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54142,"name":"address","nodeType":"ElementaryTypeName","src":"21686:7:91","typeDescriptions":{}}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21686:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54146,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21729:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21738:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21729:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21753:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21729:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54149,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"21793: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":54140,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21636:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21645:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21636:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21672:12:91","21721:6:91","21774:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21636:189:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21622:213:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21606:229:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54153,"nodeType":"ExpressionStatement","src":"21606:229:91"},{"expression":{"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54154,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"21846:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54158,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54027,"src":"21894:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":54161,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53963,"src":"21983:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54162,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53942,"src":"22026:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54163,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"22070:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":54164,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53947,"src":"22123:24:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54165,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"22180:14:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54166,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53951,"src":"22233:12:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54167,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"22283:19:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54168,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53958,"src":"22343:22:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":54169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22395:2:91","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":54170,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53956,"src":"22431:15:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":54171,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"22480:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54172,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"22533:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22552:6:91","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"22533:25:91","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":54174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22533: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":54159,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"21918:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":54160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21937:17:91","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"21918:36:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":54175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21973:8:91","22010:14:91","22059:9:91","22098:23:91","22165:13:91","22212:19:91","22263:18:91","22320:21:91","22383:10:91","22415:14:91","22464:14:91","22519:12:91"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"21918: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":54157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21858: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":54156,"nodeType":"UserDefinedTypeName","pathNode":{"id":54155,"name":"SubnetActorDiamond","nameLocations":["21862:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"21862:18:91"},"referencedDeclaration":36615,"src":"21862:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21858:727:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"21846:739:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":54178,"nodeType":"ExpressionStatement","src":"21846:739:91"},{"expression":{"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"22596:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54183,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22640:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22632:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54181,"name":"address","nodeType":"ElementaryTypeName","src":"22632:7:91","typeDescriptions":{}}},"id":54184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22632:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54180,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"22608:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$51946_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22608:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"src":"22596:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":54187,"nodeType":"ExpressionStatement","src":"22596:55:91"},{"expression":{"id":54195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54188,"name":"saPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"22661:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54192,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22702:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22694:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54190,"name":"address","nodeType":"ElementaryTypeName","src":"22694:7:91","typeDescriptions":{}}},"id":54193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54189,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"22672:21:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorPauseFacet_$51991_$","typeString":"type(contract SubnetActorPauseFacet)"}},"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22672:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"src":"22661:52:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorPauseFacet_$51991","typeString":"contract SubnetActorPauseFacet"}},"id":54196,"nodeType":"ExpressionStatement","src":"22661:52:91"},{"expression":{"id":54204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54197,"name":"saRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"22723:10:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54201,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22767:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22759:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54199,"name":"address","nodeType":"ElementaryTypeName","src":"22759:7:91","typeDescriptions":{}}},"id":54202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22759:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54198,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"22736:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorRewardFacet_$52158_$","typeString":"type(contract SubnetActorRewardFacet)"}},"id":54203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22736:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"src":"22723:55:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorRewardFacet_$52158","typeString":"contract SubnetActorRewardFacet"}},"id":54205,"nodeType":"ExpressionStatement","src":"22723:55:91"},{"expression":{"id":54213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54206,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"22788:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54210,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22843:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22835:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54208,"name":"address","nodeType":"ElementaryTypeName","src":"22835:7:91","typeDescriptions":{}}},"id":54211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54207,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"22805:29:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorCheckpointingFacet_$50577_$","typeString":"type(contract SubnetActorCheckpointingFacet)"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22805:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"src":"22788:66:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":54214,"nodeType":"ExpressionStatement","src":"22788:66:91"},{"expression":{"id":54222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54215,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"22864:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54219,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22906:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22898:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54217,"name":"address","nodeType":"ElementaryTypeName","src":"22898:7:91","typeDescriptions":{}}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22898:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54216,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"22875:22:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":54221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"22864:53:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":54223,"nodeType":"ExpressionStatement","src":"22864:53:91"},{"expression":{"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54224,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52940,"src":"22927:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54228,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"22962:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22954:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54226,"name":"address","nodeType":"ElementaryTypeName","src":"22954:7:91","typeDescriptions":{}}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22954:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54225,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"22938:15:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"22927:46:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":54232,"nodeType":"ExpressionStatement","src":"22927:46:91"},{"expression":{"id":54240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54233,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"22983:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":54237,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"23020:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23012:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54235,"name":"address","nodeType":"ElementaryTypeName","src":"23012:7:91","typeDescriptions":{}}},"id":54238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23012:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54234,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"22994:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":54239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22994:37:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"22983:48:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":54241,"nodeType":"ExpressionStatement","src":"22983:48:91"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"19317:17:91","parameters":{"id":53959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53942,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"19352:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19344:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53941,"name":"address","nodeType":"ElementaryTypeName","src":"19344:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53945,"mutability":"mutable","name":"_consensus","nameLocation":"19391:10:91","nodeType":"VariableDeclaration","scope":54243,"src":"19377:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53944,"nodeType":"UserDefinedTypeName","pathNode":{"id":53943,"name":"ConsensusType","nameLocations":["19377:13:91"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"19377:13:91"},"referencedDeclaration":37359,"src":"19377:13:91","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53947,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"19419:24:91","nodeType":"VariableDeclaration","scope":54243,"src":"19411:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53946,"name":"uint256","nodeType":"ElementaryTypeName","src":"19411:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53949,"mutability":"mutable","name":"_minValidators","nameLocation":"19460:14:91","nodeType":"VariableDeclaration","scope":54243,"src":"19453:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53948,"name":"uint64","nodeType":"ElementaryTypeName","src":"19453:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53951,"mutability":"mutable","name":"_checkPeriod","nameLocation":"19491:12:91","nodeType":"VariableDeclaration","scope":54243,"src":"19484:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53950,"name":"uint64","nodeType":"ElementaryTypeName","src":"19484:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53953,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"19519:19:91","nodeType":"VariableDeclaration","scope":54243,"src":"19513:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53952,"name":"uint8","nodeType":"ElementaryTypeName","src":"19513:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53956,"mutability":"mutable","name":"_permissionMode","nameLocation":"19563:15:91","nodeType":"VariableDeclaration","scope":54243,"src":"19548:30:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"PermissionMode","nameLocations":["19548:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":50118,"src":"19548:14:91"},"referencedDeclaration":50118,"src":"19548:14:91","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53958,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"19595:22:91","nodeType":"VariableDeclaration","scope":54243,"src":"19588:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53957,"name":"uint16","nodeType":"ElementaryTypeName","src":"19588:6:91","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19334:289:91"},"returnParameters":{"id":53960,"nodeType":"ParameterList","parameters":[],"src":"19631:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54336,"nodeType":"FunctionDefinition","src":"23044:997:91","nodes":[],"body":{"id":54335,"nodeType":"Block","src":"23136:905:91","nodes":[],"statements":[{"assignments":[54253],"declarations":[{"constant":false,"id":54253,"mutability":"mutable","name":"mockedManager","nameLocation":"23162:13:91","nodeType":"VariableDeclaration","scope":54335,"src":"23146:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":54252,"nodeType":"UserDefinedTypeName","pathNode":{"id":54251,"name":"SubnetActorMock","nameLocations":["23146:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23146:15:91"},"referencedDeclaration":58922,"src":"23146:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"internal"}],"id":54258,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23178:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorMock_$58922_$","typeString":"function () returns (contract SubnetActorMock)"},"typeName":{"id":54255,"nodeType":"UserDefinedTypeName","pathNode":{"id":54254,"name":"SubnetActorMock","nameLocations":["23182:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"23182:15:91"},"referencedDeclaration":58922,"src":"23182:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}},"id":54257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23178:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"nodeType":"VariableDeclarationStatement","src":"23146:53:91"},{"assignments":[54261],"declarations":[{"constant":false,"id":54261,"mutability":"mutable","name":"getter","nameLocation":"23232:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23209:29:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":54260,"nodeType":"UserDefinedTypeName","pathNode":{"id":54259,"name":"SubnetActorGetterFacet","nameLocations":["23209:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23209:22:91"},"referencedDeclaration":51235,"src":"23209:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":54266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23241:26:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":54263,"nodeType":"UserDefinedTypeName","pathNode":{"id":54262,"name":"SubnetActorGetterFacet","nameLocations":["23245:22:91"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"23245:22:91"},"referencedDeclaration":51235,"src":"23245:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}},"id":54265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"23209:60:91"},{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"diamondCut","nameLocation":"23307:10:91","nodeType":"VariableDeclaration","scope":54335,"src":"23280: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":54270,"nodeType":"UserDefinedTypeName","pathNode":{"id":54269,"name":"IDiamond.FacetCut","nameLocations":["23280:8:91","23289:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23280:17:91"},"referencedDeclaration":40159,"src":"23280:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54271,"nodeType":"ArrayTypeName","src":"23280:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54279,"initialValue":{"arguments":[{"hexValue":"32","id":54277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23344: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":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23320: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":54274,"nodeType":"UserDefinedTypeName","pathNode":{"id":54273,"name":"IDiamond.FacetCut","nameLocations":["23324:8:91","23333:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"23324:17:91"},"referencedDeclaration":40159,"src":"23324:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54275,"nodeType":"ArrayTypeName","src":"23324:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23320: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":"23280:66:91"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54280,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23357:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54282,"indexExpression":{"hexValue":"30","id":54281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23368: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":"23357:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54287,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"23445:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}],"id":54286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23437:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54285,"name":"address","nodeType":"ElementaryTypeName","src":"23437:7:91","typeDescriptions":{}}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23437:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54289,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23485:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23485:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23509:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23485:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54292,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52910,"src":"23549: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":54283,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23387:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23396:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23387:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23423:12:91","23477:6:91","23530:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23387:201:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23373:225:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23357:241:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54296,"nodeType":"ExpressionStatement","src":"23357:241:91"},{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54297,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23609:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54299,"indexExpression":{"hexValue":"31","id":54298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23620: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":"23609:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54304,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54261,"src":"23697:6:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}],"id":54303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23689:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54302,"name":"address","nodeType":"ElementaryTypeName","src":"23689:7:91","typeDescriptions":{}}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23689:15:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54306,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23730:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23739:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"23730:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23754:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"23730:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54309,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52895,"src":"23794: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":54300,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"23639:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23648:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"23639:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23675:12:91","23722:6:91","23775:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"23639:187:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23625:211:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"23609:227:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54313,"nodeType":"ExpressionStatement","src":"23609:227:91"},{"assignments":[54318],"declarations":[{"constant":false,"id":54318,"mutability":"mutable","name":"params","nameLocation":"23891:6:91","nodeType":"VariableDeclaration","scope":54335,"src":"23847:50:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54317,"nodeType":"UserDefinedTypeName","pathNode":{"id":54316,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["23847:18:91","23866:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"23847:36:91"},"referencedDeclaration":36253,"src":"23847:36:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54322,"initialValue":{"arguments":[{"id":54320,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54245,"src":"23936:2:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54319,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53051,"src":"23900: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":54321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23900:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"23847:92:91"},{"assignments":[54325],"declarations":[{"constant":false,"id":54325,"mutability":"mutable","name":"d","nameLocation":"23969:1:91","nodeType":"VariableDeclaration","scope":54335,"src":"23950:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54324,"nodeType":"UserDefinedTypeName","pathNode":{"id":54323,"name":"SubnetActorDiamond","nameLocations":["23950:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23950:18:91"},"referencedDeclaration":36615,"src":"23950:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54332,"initialValue":{"arguments":[{"id":54329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"23996:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54330,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54318,"src":"24008: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":54328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"23973: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":54327,"nodeType":"UserDefinedTypeName","pathNode":{"id":54326,"name":"SubnetActorDiamond","nameLocations":["23977:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23977:18:91"},"referencedDeclaration":36615,"src":"23977:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23973:42:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"23950:65:91"},{"expression":{"id":54333,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54325,"src":"24033:1:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":54250,"id":54334,"nodeType":"Return","src":"24026:8:91"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"23053:34:91","parameters":{"id":54246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54245,"mutability":"mutable","name":"gw","nameLocation":"23096:2:91","nodeType":"VariableDeclaration","scope":54336,"src":"23088:10:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54244,"name":"address","nodeType":"ElementaryTypeName","src":"23088:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23087:12:91"},"returnParameters":{"id":54250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54336,"src":"23116:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54248,"nodeType":"UserDefinedTypeName","pathNode":{"id":54247,"name":"SubnetActorDiamond","nameLocations":["23116:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"23116:18:91"},"referencedDeclaration":36615,"src":"23116:18:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"23115:20:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54478,"nodeType":"FunctionDefinition","src":"24093:1703:91","nodes":[],"body":{"id":54477,"nodeType":"Block","src":"24231:1565:91","nodes":[],"statements":[{"assignments":[54350],"declarations":[{"constant":false,"id":54350,"mutability":"mutable","name":"diamondCut","nameLocation":"24268:10:91","nodeType":"VariableDeclaration","scope":54477,"src":"24241: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":54348,"nodeType":"UserDefinedTypeName","pathNode":{"id":54347,"name":"IDiamond.FacetCut","nameLocations":["24241:8:91","24250:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24241:17:91"},"referencedDeclaration":40159,"src":"24241:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54349,"nodeType":"ArrayTypeName","src":"24241:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54357,"initialValue":{"arguments":[{"hexValue":"34","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24305: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":54354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24281: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":54352,"nodeType":"UserDefinedTypeName","pathNode":{"id":54351,"name":"IDiamond.FacetCut","nameLocations":["24285:8:91","24294:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"24285:17:91"},"referencedDeclaration":40159,"src":"24285:17:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54353,"nodeType":"ArrayTypeName","src":"24285:19:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24281: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":"24241:66:91"},{"assignments":[54360],"declarations":[{"constant":false,"id":54360,"mutability":"mutable","name":"regCutFacet","nameLocation":"24334:11:91","nodeType":"VariableDeclaration","scope":54477,"src":"24318:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54359,"nodeType":"UserDefinedTypeName","pathNode":{"id":54358,"name":"DiamondCutFacet","nameLocations":["24318:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24318:15:91"},"referencedDeclaration":36918,"src":"24318:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24348:19:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54362,"nodeType":"UserDefinedTypeName","pathNode":{"id":54361,"name":"DiamondCutFacet","nameLocations":["24352:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"24352:15:91"},"referencedDeclaration":36918,"src":"24352:15:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"24318:51:91"},{"assignments":[54368],"declarations":[{"constant":false,"id":54368,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"24397:13:91","nodeType":"VariableDeclaration","scope":54477,"src":"24379:31:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54367,"nodeType":"UserDefinedTypeName","pathNode":{"id":54366,"name":"DiamondLoupeFacet","nameLocations":["24379:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24379:17:91"},"referencedDeclaration":37355,"src":"24379:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24413:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54370,"nodeType":"UserDefinedTypeName","pathNode":{"id":54369,"name":"DiamondLoupeFacet","nameLocations":["24417:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"24417:17:91"},"referencedDeclaration":37355,"src":"24417:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24413:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"24379:57:91"},{"assignments":[54376],"declarations":[{"constant":false,"id":54376,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"24466:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24446:34:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54375,"nodeType":"UserDefinedTypeName","pathNode":{"id":54374,"name":"RegisterSubnetFacet","nameLocations":["24446:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24446:19:91"},"referencedDeclaration":52286,"src":"24446:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24483:23:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54378,"nodeType":"UserDefinedTypeName","pathNode":{"id":54377,"name":"RegisterSubnetFacet","nameLocations":["24487:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"24487:19:91"},"referencedDeclaration":52286,"src":"24487:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24483:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"24446:62:91"},{"assignments":[54384],"declarations":[{"constant":false,"id":54384,"mutability":"mutable","name":"regGetterFacet","nameLocation":"24536:14:91","nodeType":"VariableDeclaration","scope":54477,"src":"24518:32:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54383,"nodeType":"UserDefinedTypeName","pathNode":{"id":54382,"name":"SubnetGetterFacet","nameLocations":["24518:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24518:17:91"},"referencedDeclaration":52524,"src":"24518:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54389,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"24553:21:91","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54386,"nodeType":"UserDefinedTypeName","pathNode":{"id":54385,"name":"SubnetGetterFacet","nameLocations":["24557:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"24557:17:91"},"referencedDeclaration":52524,"src":"24557:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}},"id":54388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24553:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"24518:58:91"},{"expression":{"id":54405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54390,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24587:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54392,"indexExpression":{"hexValue":"30","id":54391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24598: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":"24587:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54397,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54368,"src":"24675:13:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24667:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54395,"name":"address","nodeType":"ElementaryTypeName","src":"24667:7:91","typeDescriptions":{}}},"id":54398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24667:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54399,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24715:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24724:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24715:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24739:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24715:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54402,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52711,"src":"24779: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":54393,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24617:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24626:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24617:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24653:12:91","24707:6:91","24760:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24617:200:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24603:224:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24587:240:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54406,"nodeType":"ExpressionStatement","src":"24587:240:91"},{"expression":{"id":54422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54407,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"24837:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54409,"indexExpression":{"hexValue":"31","id":54408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24848: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":"24837:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54414,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54360,"src":"24925:11:91","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24917:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54412,"name":"address","nodeType":"ElementaryTypeName","src":"24917:7:91","typeDescriptions":{}}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24917:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54416,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24963:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24972:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"24963:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"24963:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54419,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52708,"src":"25027: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":54410,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"24867:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24876:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"24867:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24903:12:91","24955:6:91","25008:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"24867:198:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24853:222:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"24837:238:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54423,"nodeType":"ExpressionStatement","src":"24837:238:91"},{"expression":{"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54424,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25085:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54426,"indexExpression":{"hexValue":"32","id":54425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25096: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":"25085:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54431,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54376,"src":"25173:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}],"id":54430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25165:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54429,"name":"address","nodeType":"ElementaryTypeName","src":"25165:7:91","typeDescriptions":{}}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25165:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54433,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25214:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25223:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25214:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25238:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25214:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54436,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52702,"src":"25278: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":54427,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25124:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25115:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25151:12:91","25206:6:91","25259:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25115:206:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25101:230:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25085:246:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54440,"nodeType":"ExpressionStatement","src":"25085:246:91"},{"expression":{"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54441,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25341:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54443,"indexExpression":{"hexValue":"33","id":54442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25352: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":"25341:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54448,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"25429:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25421:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54446,"name":"address","nodeType":"ElementaryTypeName","src":"25421:7:91","typeDescriptions":{}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25421:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54450,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25470:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25479:14:91","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"25470:23:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25494:3:91","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"25470:27:91","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54453,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52705,"src":"25534: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":54444,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"25371:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25380:8:91","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"25371:17:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25407:12:91","25462:6:91","25515:17:91"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"25371:212:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25357:236:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"25341:252:91","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54457,"nodeType":"ExpressionStatement","src":"25341:252:91"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"25626:17:91","nodeType":"VariableDeclaration","scope":54477,"src":"25604:39:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"SubnetRegistryDiamond","nameLocations":["25604:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25604:21:91"},"referencedDeclaration":36853,"src":"25604:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54467,"initialValue":{"arguments":[{"id":54464,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54350,"src":"25672:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54465,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"25684: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":54463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"25646: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":54462,"nodeType":"UserDefinedTypeName","pathNode":{"id":54461,"name":"SubnetRegistryDiamond","nameLocations":["25650:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"25650:21:91"},"referencedDeclaration":36853,"src":"25650:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25646:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"25604:87:91"},{"eventCall":{"arguments":[{"arguments":[{"id":54471,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25736:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25728:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54469,"name":"address","nodeType":"ElementaryTypeName","src":"25728:7:91","typeDescriptions":{}}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25728:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54468,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53086,"src":"25706:21:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25706:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54474,"nodeType":"EmitStatement","src":"25701:54:91"},{"expression":{"id":54475,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"25772:17:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54344,"id":54476,"nodeType":"Return","src":"25765:24:91"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"24102:20:91","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"params","nameLocation":"24179:6:91","nodeType":"VariableDeclaration","scope":54478,"src":"24132:53:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54338,"nodeType":"UserDefinedTypeName","pathNode":{"id":54337,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["24132:21:91","24154:17:91"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"24132:39:91"},"referencedDeclaration":36652,"src":"24132:39:91","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"24122:69:91"},"returnParameters":{"id":54344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54478,"src":"24208:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54342,"nodeType":"UserDefinedTypeName","pathNode":{"id":54341,"name":"SubnetRegistryDiamond","nameLocations":["24208:21:91"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"24208:21:91"},"referencedDeclaration":36853,"src":"24208:21:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"24207:23:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54507,"nodeType":"FunctionDefinition","src":"25802:190:91","nodes":[],"body":{"id":54506,"nodeType":"Block","src":"25883:109:91","nodes":[],"statements":[{"body":{"id":54502,"nodeType":"Block","src":"25924:42:91","statements":[{"expression":{"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54496,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25938:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54497,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54481,"src":"25945:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54499,"indexExpression":{"id":54498,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25953:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25945:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25938:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54501,"nodeType":"ExpressionStatement","src":"25938:17:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25912:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25916:1:91","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"25912:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54503,"initializationExpression":{"assignments":[54487],"declarations":[{"constant":false,"id":54487,"mutability":"mutable","name":"i","nameLocation":"25905:1:91","nodeType":"VariableDeclaration","scope":54503,"src":"25898:8:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54486,"name":"uint64","nodeType":"ElementaryTypeName","src":"25898:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54489,"initialValue":{"hexValue":"30","id":54488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25898:12:91"},"loopExpression":{"expression":{"id":54494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25919:3:91","subExpression":{"id":54493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"25919:1:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54495,"nodeType":"ExpressionStatement","src":"25919:3:91"},"nodeType":"ForStatement","src":"25893:73:91"},{"expression":{"id":54504,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54484,"src":"25982:3:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54485,"id":54505,"nodeType":"Return","src":"25975:10:91"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"25811:11:91","parameters":{"id":54482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54481,"mutability":"mutable","name":"weights","nameLocation":"25840:7:91","nodeType":"VariableDeclaration","scope":54507,"src":"25823:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54479,"name":"uint256","nodeType":"ElementaryTypeName","src":"25823:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54480,"nodeType":"ArrayTypeName","src":"25823:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25822:26:91"},"returnParameters":{"id":54485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54484,"mutability":"mutable","name":"sum","nameLocation":"25878:3:91","nodeType":"VariableDeclaration","scope":54507,"src":"25870:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54483,"name":"uint256","nodeType":"ElementaryTypeName","src":"25870:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25869:13:91"},"scope":55675,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54682,"nodeType":"FunctionDefinition","src":"25998:933:91","nodes":[],"body":{"id":54681,"nodeType":"Block","src":"26101:830:91","nodes":[],"statements":[{"expression":{"id":54524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26111: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":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26141: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":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26124: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":54519,"nodeType":"UserDefinedTypeName","pathNode":{"id":54518,"name":"FvmAddress","nameLocations":["26128:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26128:10:91"},"referencedDeclaration":49951,"src":"26128:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54520,"nodeType":"ArrayTypeName","src":"26128:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26124:19:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"26111:32:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54525,"nodeType":"ExpressionStatement","src":"26111:32:91"},{"expression":{"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54526,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26153:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54528,"indexExpression":{"hexValue":"30","id":54527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26164: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":"26153:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26199: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":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26191:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26194:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26191:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26191:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54529,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26169:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26186:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26169: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":54535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26169:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26153:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54537,"nodeType":"ExpressionStatement","src":"26153:51:91"},{"expression":{"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54538,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26214:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54540,"indexExpression":{"hexValue":"31","id":54539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26225: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":"26214:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26260: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":54543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26252:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26255:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26252:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26252:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54541,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26230:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26247:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26230: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":54547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26230:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26214:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54549,"nodeType":"ExpressionStatement","src":"26214:51:91"},{"expression":{"id":54560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54550,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"26275:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54552,"indexExpression":{"hexValue":"32","id":54551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26286: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":"26275:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26321: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":54555,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26313:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26316:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26313:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26313:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54553,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"26291:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26308:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"26291: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":54559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26291:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"26275:51:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54561,"nodeType":"ExpressionStatement","src":"26275:51:91"},{"expression":{"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54562,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26337:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26363: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":54565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26349: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":54563,"name":"address","nodeType":"ElementaryTypeName","src":"26353:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54564,"nodeType":"ArrayTypeName","src":"26353:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26349:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"26337:28:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54569,"nodeType":"ExpressionStatement","src":"26337:28:91"},{"expression":{"id":54577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54570,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26375:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54572,"indexExpression":{"hexValue":"30","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26385: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":"26375:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26398: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":54573,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26390:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26393:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26390:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26390:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26375:27:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54578,"nodeType":"ExpressionStatement","src":"26375:27:91"},{"expression":{"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54579,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26412:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54581,"indexExpression":{"hexValue":"31","id":54580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26422: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":"26412:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26435: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":54582,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26427:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54583,"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":54585,"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":54587,"nodeType":"ExpressionStatement","src":"26412:27:91"},{"expression":{"id":54595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54515,"src":"26449:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54590,"indexExpression":{"hexValue":"32","id":54589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26459: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":"26449:12:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26472: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":54591,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26464:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54592,"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":54594,"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":54596,"nodeType":"ExpressionStatement","src":"26449:27:91"},{"assignments":[54601],"declarations":[{"constant":false,"id":54601,"mutability":"mutable","name":"weights","nameLocation":"26504:7:91","nodeType":"VariableDeclaration","scope":54681,"src":"26487:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26487:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54600,"nodeType":"ArrayTypeName","src":"26487:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54607,"initialValue":{"arguments":[{"hexValue":"33","id":54605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26528: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":54604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"26514: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":54602,"name":"uint256","nodeType":"ElementaryTypeName","src":"26518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54603,"nodeType":"ArrayTypeName","src":"26518:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26514:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"26487:43:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26557: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":54611,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26549:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26552:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26549:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26549:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26563: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":54608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26541:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26544:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26541:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26541:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54617,"nodeType":"ExpressionStatement","src":"26541:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26591: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":54621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26583:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26586:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26583:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26583:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26597: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":54618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26575:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26578:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26575:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26575:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54627,"nodeType":"ExpressionStatement","src":"26575:24:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26625: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":54631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26617:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26620:4:91","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"26617:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26617:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26631: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":54628,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26609:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26612:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26609:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26609:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54637,"nodeType":"ExpressionStatement","src":"26609:24:91"},{"expression":{"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54638,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26644:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54640,"indexExpression":{"hexValue":"30","id":54639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26652: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":"26644:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26657:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26644:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54643,"nodeType":"ExpressionStatement","src":"26644:16:91"},{"expression":{"id":54648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54644,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26670:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54646,"indexExpression":{"hexValue":"31","id":54645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26678: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":"26670:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26683:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26670:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54649,"nodeType":"ExpressionStatement","src":"26670:16:91"},{"expression":{"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54650,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26696:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54652,"indexExpression":{"hexValue":"32","id":54651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26704: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":"26696:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26709:3:91","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"26696:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54655,"nodeType":"ExpressionStatement","src":"26696:16:91"},{"assignments":[54658],"declarations":[{"constant":false,"id":54658,"mutability":"mutable","name":"finality","nameLocation":"26745:8:91","nodeType":"VariableDeclaration","scope":54681,"src":"26723:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54657,"nodeType":"UserDefinedTypeName","pathNode":{"id":54656,"name":"ParentFinality","nameLocations":["26723:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"26723:14:91"},"referencedDeclaration":49871,"src":"26723:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54667,"initialValue":{"arguments":[{"expression":{"id":54660,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26780:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26786:6:91","memberName":"number","nodeType":"MemberAccess","src":"26780:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26813: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":54663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26805:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26805:7:91","typeDescriptions":{}}},"id":54665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26805:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54659,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"26756:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["26772:6:91","26794:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"26756:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"26723:94:91"},{"expression":{"arguments":[{"expression":{"id":54671,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"26837:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26848:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"26837:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54668,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26828:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26828:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26828:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54674,"nodeType":"ExpressionStatement","src":"26828:33:91"},{"expression":{"arguments":[{"id":54678,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54658,"src":"26915: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":54675,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"26871:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26894:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"26871: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":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26871:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54680,"nodeType":"ExpressionStatement","src":"26871:53:91"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"26007:15:91","parameters":{"id":54508,"nodeType":"ParameterList","parameters":[],"src":"26022:2:91"},"returnParameters":{"id":54516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54512,"mutability":"mutable","name":"validators","nameLocation":"26061:10:91","nodeType":"VariableDeclaration","scope":54682,"src":"26041: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":54510,"nodeType":"UserDefinedTypeName","pathNode":{"id":54509,"name":"FvmAddress","nameLocations":["26041:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"26041:10:91"},"referencedDeclaration":49951,"src":"26041:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54511,"nodeType":"ArrayTypeName","src":"26041:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54515,"mutability":"mutable","name":"addresses","nameLocation":"26090:9:91","nodeType":"VariableDeclaration","scope":54682,"src":"26073:26:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54513,"name":"address","nodeType":"ElementaryTypeName","src":"26073:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"nodeType":"ArrayTypeName","src":"26073:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26040:60:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54775,"nodeType":"FunctionDefinition","src":"26937:1297:91","nodes":[],"body":{"id":54774,"nodeType":"Block","src":"27021:1213:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54692,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"27046:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54693,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27073:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54691,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55582,"src":"27031:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27031:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54695,"nodeType":"ExpressionStatement","src":"27031:46:91"},{"assignments":[54698],"declarations":[{"constant":false,"id":54698,"mutability":"mutable","name":"crossMsg","nameLocation":"27104:8:91","nodeType":"VariableDeclaration","scope":54774,"src":"27088:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54697,"nodeType":"UserDefinedTypeName","pathNode":{"id":54696,"name":"CrossMsg","nameLocations":["27088:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27088:8:91"},"referencedDeclaration":49927,"src":"27088:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54738,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54706,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27267:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54702,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27226:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27235:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27226:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27252:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27226: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":54707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27226:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54710,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54684,"src":"27330:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54708,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27308:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27325:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27308: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":54711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308: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":54701,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27183:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27216:8:91","27296:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27183:173:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54718,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27462:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54714,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"27421:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27430:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"27421:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":54717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27447:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"27421: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":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27421:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54722,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54686,"src":"27522:3:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54720,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"27500:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27517:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"27500: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":54723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27500: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":54713,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"27378:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50157_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27411:8:91","27488:10:91"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"27378:167:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50157_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54725,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27570:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27594:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27570:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54729,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"27647:11:91","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27694: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":54731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27684:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54730,"name":"bytes","nodeType":"ElementaryTypeName","src":"27688:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27684:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54734,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"27719: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":54700,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49944,"src":"27147:11:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49944_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27177:4:91","27374:2:91","27563:5:91","27613:5:91","27639:6:91","27676:6:91","27714:3:91"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"27147:608:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49944_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27778: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":54699,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49927,"src":"27115:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49927_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27138:7:91","27769:7:91"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"27115:679:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"27088:706:91"},{"assignments":[54743],"declarations":[{"constant":false,"id":54743,"mutability":"mutable","name":"msgs","nameLocation":"27822:4:91","nodeType":"VariableDeclaration","scope":54774,"src":"27804: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":54741,"nodeType":"UserDefinedTypeName","pathNode":{"id":54740,"name":"CrossMsg","nameLocations":["27804:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27804:8:91"},"referencedDeclaration":49927,"src":"27804:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54742,"nodeType":"ArrayTypeName","src":"27804:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54750,"initialValue":{"arguments":[{"hexValue":"31","id":54748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844: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":54747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27829: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":54745,"nodeType":"UserDefinedTypeName","pathNode":{"id":54744,"name":"CrossMsg","nameLocations":["27833:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":49927,"src":"27833:8:91"},"referencedDeclaration":49927,"src":"27833:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_storage_ptr","typeString":"struct CrossMsg"}},"id":54746,"nodeType":"ArrayTypeName","src":"27833:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27829: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":"27804:42:91"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"27856:4:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49927_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54753,"indexExpression":{"hexValue":"30","id":54752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27861: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":"27856:7:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"27866:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"27856:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54756,"nodeType":"ExpressionStatement","src":"27856:18:91"},{"expression":{"arguments":[{"expression":{"id":54760,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28113:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28124:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28113:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54757,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28104:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28107:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"28104:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28104:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54763,"nodeType":"ExpressionStatement","src":"28104:33:91"},{"expression":{"arguments":[{"id":54767,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54743,"src":"28187: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":54764,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"28147:20:91","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28168:18:91","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"28147: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":54768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28147:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54769,"nodeType":"ExpressionStatement","src":"28147:45:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54770,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54698,"src":"28210:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49927_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28219:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40534,"src":"28210: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":54772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28210:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54690,"id":54773,"nodeType":"Return","src":"28203:24:91"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"26946:20:91","parameters":{"id":54687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54684,"mutability":"mutable","name":"caller","nameLocation":"26975:6:91","nodeType":"VariableDeclaration","scope":54775,"src":"26967:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54683,"name":"address","nodeType":"ElementaryTypeName","src":"26967:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54686,"mutability":"mutable","name":"src","nameLocation":"26991:3:91","nodeType":"VariableDeclaration","scope":54775,"src":"26983:11:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54685,"name":"address","nodeType":"ElementaryTypeName","src":"26983:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26966:29:91"},"returnParameters":{"id":54690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54775,"src":"27012:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27012:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27011:9:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54786,"nodeType":"FunctionDefinition","src":"28240:93:91","nodes":[],"body":{"id":54785,"nodeType":"Block","src":"28288:45:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54781,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54777,"src":"28311:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28322: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":54780,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54786,54869],"referencedDeclaration":54869,"src":"28298:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28298:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54784,"nodeType":"ExpressionStatement","src":"28298:28:91"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28249:12:91","parameters":{"id":54778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54777,"mutability":"mutable","name":"validator","nameLocation":"28270:9:91","nodeType":"VariableDeclaration","scope":54786,"src":"28262:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54776,"name":"address","nodeType":"ElementaryTypeName","src":"28262:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28261:19:91"},"returnParameters":{"id":54779,"nodeType":"ParameterList","parameters":[],"src":"28288:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54869,"nodeType":"FunctionDefinition","src":"28339:610:91","nodes":[],"body":{"id":54868,"nodeType":"Block","src":"28403:546:91","nodes":[],"statements":[{"assignments":[54797],"declarations":[{"constant":false,"id":54797,"mutability":"mutable","name":"validators","nameLocation":"28433:10:91","nodeType":"VariableDeclaration","scope":54868,"src":"28413: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":54795,"nodeType":"UserDefinedTypeName","pathNode":{"id":54794,"name":"FvmAddress","nameLocations":["28413:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49951,"src":"28413:10:91"},"referencedDeclaration":49951,"src":"28413:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_storage_ptr","typeString":"struct FvmAddress"}},"id":54796,"nodeType":"ArrayTypeName","src":"28413:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54804,"initialValue":{"arguments":[{"hexValue":"31","id":54802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28463: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":54801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28446: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":54799,"nodeType":"UserDefinedTypeName","pathNode":{"id":54798,"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":54800,"nodeType":"ArrayTypeName","src":"28450:12:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28446: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":"28413:52:91"},{"expression":{"id":54812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54805,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54797,"src":"28475:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49951_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54807,"indexExpression":{"hexValue":"30","id":54806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28486: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":"28475:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54810,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28513:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54808,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"28491:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28508:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"28491: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":54811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28491:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"28475:48:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54813,"nodeType":"ExpressionStatement","src":"28475:48:91"},{"assignments":[54818],"declarations":[{"constant":false,"id":54818,"mutability":"mutable","name":"weights","nameLocation":"28550:7:91","nodeType":"VariableDeclaration","scope":54868,"src":"28533:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54816,"name":"uint256","nodeType":"ElementaryTypeName","src":"28533:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54817,"nodeType":"ArrayTypeName","src":"28533:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54824,"initialValue":{"arguments":[{"hexValue":"31","id":54822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28574: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":54821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28560: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":54819,"name":"uint256","nodeType":"ElementaryTypeName","src":"28564:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54820,"nodeType":"ArrayTypeName","src":"28564:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28560:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28533:43:91"},{"expression":{"id":54829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54825,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"28586:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54827,"indexExpression":{"hexValue":"30","id":54826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28594: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":"28586:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54828,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"28599:6:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28586:19:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54830,"nodeType":"ExpressionStatement","src":"28586:19:91"},{"expression":{"arguments":[{"id":54834,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54788,"src":"28624:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28635: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":54831,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28616:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28619:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28616:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28616:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54837,"nodeType":"ExpressionStatement","src":"28616:21:91"},{"assignments":[54840],"declarations":[{"constant":false,"id":54840,"mutability":"mutable","name":"finality","nameLocation":"28669:8:91","nodeType":"VariableDeclaration","scope":54868,"src":"28647:30:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54839,"nodeType":"UserDefinedTypeName","pathNode":{"id":54838,"name":"ParentFinality","nameLocations":["28647:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":49871,"src":"28647:14:91"},"referencedDeclaration":49871,"src":"28647:14:91","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54849,"initialValue":{"arguments":[{"expression":{"id":54842,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28704:5:91","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28710:6:91","memberName":"number","nodeType":"MemberAccess","src":"28704:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28737: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":54845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28729:7:91","typeDescriptions":{}}},"id":54847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:10:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54841,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49871,"src":"28680:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49871_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:6:91","28718:9:91"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"28680:61:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49871_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"28647:94:91"},{"expression":{"arguments":[{"expression":{"id":54853,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"28831:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28842:12:91","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"28831:23:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54850,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28817:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28820:10:91","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"28817:13:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28817:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54856,"nodeType":"ExpressionStatement","src":"28817:38:91"},{"expression":{"arguments":[{"id":54860,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54840,"src":"28909: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":54857,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"28865:22:91","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28888:20:91","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"28865: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":54861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28865:53:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49871_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54862,"nodeType":"ExpressionStatement","src":"28865:53:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28928:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28931:9:91","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"28928:12:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28928:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54867,"nodeType":"ExpressionStatement","src":"28928:14:91"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"28348:12:91","parameters":{"id":54791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54788,"mutability":"mutable","name":"validator","nameLocation":"28369:9:91","nodeType":"VariableDeclaration","scope":54869,"src":"28361:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54787,"name":"address","nodeType":"ElementaryTypeName","src":"28361:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54790,"mutability":"mutable","name":"weight","nameLocation":"28388:6:91","nodeType":"VariableDeclaration","scope":54869,"src":"28380:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54789,"name":"uint256","nodeType":"ElementaryTypeName","src":"28380:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28360:35:91"},"returnParameters":{"id":54792,"nodeType":"ParameterList","parameters":[],"src":"28403:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54882,"nodeType":"FunctionDefinition","src":"28955:112:91","nodes":[],"body":{"id":54881,"nodeType":"Block","src":"28999:68:91","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29021:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54878,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"29053: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":54874,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"29009:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29017:3:91","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"29009:11:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29009:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54880,"nodeType":"ExpressionStatement","src":"29009:51:91"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"28964:6:91","parameters":{"id":54872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54871,"mutability":"mutable","name":"amount","nameLocation":"28979:6:91","nodeType":"VariableDeclaration","scope":54882,"src":"28971:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"28971:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28970:16:91"},"returnParameters":{"id":54873,"nodeType":"ParameterList","parameters":[],"src":"28999:0:91"},"scope":55675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54897,"nodeType":"FunctionDefinition","src":"29073:131:91","nodes":[],"body":{"id":54896,"nodeType":"Block","src":"29137:67:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":54890,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54884,"src":"29152:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54891,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54886,"src":"29167:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54892,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29179:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29190:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29179: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":54889,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54897,55022],"referencedDeclaration":55022,"src":"29147:4:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50182_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29147:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54895,"nodeType":"ExpressionStatement","src":"29147:50:91"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29082:4:91","parameters":{"id":54887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54884,"mutability":"mutable","name":"funderAddress","nameLocation":"29095:13:91","nodeType":"VariableDeclaration","scope":54897,"src":"29087:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"29087:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54886,"mutability":"mutable","name":"fundAmount","nameLocation":"29118:10:91","nodeType":"VariableDeclaration","scope":54897,"src":"29110:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54885,"name":"uint256","nodeType":"ElementaryTypeName","src":"29110:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29086:43:91"},"returnParameters":{"id":54888,"nodeType":"ParameterList","parameters":[],"src":"29137:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55022,"nodeType":"FunctionDefinition","src":"29210:1180:91","nodes":[],"body":{"id":55021,"nodeType":"Block","src":"29291:1099:91","nodes":[],"statements":[{"assignments":[54909,null,54911,null,54913],"declarations":[{"constant":false,"id":54909,"mutability":"mutable","name":"subnetId","nameLocation":"29383:8:91","nodeType":"VariableDeclaration","scope":55021,"src":"29367:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54908,"nodeType":"UserDefinedTypeName","pathNode":{"id":54907,"name":"SubnetID","nameLocations":["29367:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"29367:8:91"},"referencedDeclaration":50030,"src":"29367:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54911,"mutability":"mutable","name":"nonceBefore","nameLocation":"29403:11:91","nodeType":"VariableDeclaration","scope":55021,"src":"29395:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54910,"name":"uint256","nodeType":"ElementaryTypeName","src":"29395:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54913,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"29426:16:91","nodeType":"VariableDeclaration","scope":55021,"src":"29418:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"29418:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54920,"initialValue":{"arguments":[{"arguments":[{"id":54917,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"29464:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29456:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54915,"name":"address","nodeType":"ElementaryTypeName","src":"29456:7:91","typeDescriptions":{}}},"id":54918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54914,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"29446: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":54919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29446: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":"29366:109:91"},{"assignments":[54922],"declarations":[{"constant":false,"id":54922,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"29494:25:91","nodeType":"VariableDeclaration","scope":55021,"src":"29486:33:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54921,"name":"uint256","nodeType":"ElementaryTypeName","src":"29486:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54929,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54925,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29558: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":54923,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29522:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29531:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"29522: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":54926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29522:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29570:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29522:49:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29486:85:91"},{"assignments":[54931],"declarations":[{"constant":false,"id":54931,"mutability":"mutable","name":"expectedNonce","nameLocation":"29589:13:91","nodeType":"VariableDeclaration","scope":55021,"src":"29581:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54930,"name":"uint256","nodeType":"ElementaryTypeName","src":"29581:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54935,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54932,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"29605:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29619:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29605:15:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29581:39:91"},{"assignments":[54937],"declarations":[{"constant":false,"id":54937,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"29638:18:91","nodeType":"VariableDeclaration","scope":55021,"src":"29630:26:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54936,"name":"uint256","nodeType":"ElementaryTypeName","src":"29630:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54941,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54938,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54913,"src":"29659:16:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54939,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29678:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29659:29:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29630:58:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54943,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"29707:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29716:11:91","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"29707:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29707:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29707:26:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29735: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":54942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29699:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29699:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54950,"nodeType":"ExpressionStatement","src":"29699:55:91"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54951,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29769:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54952,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29777:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29788:6:91","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50180,"src":"29777:17:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29769:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54968,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54904,"src":"29912:4:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54969,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50182,"src":"29920:10:91","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50182_$","typeString":"type(enum SupplyKind)"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29931:5:91","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"29920:16:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"src":"29912:24:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54984,"nodeType":"IfStatement","src":"29908:138:91","trueBody":{"id":54983,"nodeType":"Block","src":"29938:108:91","statements":[{"expression":{"arguments":[{"id":54975,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29976:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54978,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"30008:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54976,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29986:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30003:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29986: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":54979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29986:36:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49951_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54980,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"30024: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":54972,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29952:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29962:13:91","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"29952: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":54981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29952:83:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54982,"nodeType":"ExpressionStatement","src":"29952:83:91"}]}},"id":54985,"nodeType":"IfStatement","src":"29765:281:91","trueBody":{"id":54967,"nodeType":"Block","src":"29796:106:91","statements":[{"expression":{"arguments":[{"id":54960,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"29844:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54963,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54899,"src":"29876:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54961,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"29854:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":54962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29871:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"29854: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":54964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29854: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":54955,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"29810:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29820:4:91","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"29810: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":54959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54958,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"29832:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29810: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":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:81:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54966,"nodeType":"ExpressionStatement","src":"29810:81:91"}]}},{"assignments":[null,null,54987,null,54989],"declarations":[null,null,{"constant":false,"id":54987,"mutability":"mutable","name":"nonce","nameLocation":"30069:5:91","nodeType":"VariableDeclaration","scope":55021,"src":"30061:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54986,"name":"uint256","nodeType":"ElementaryTypeName","src":"30061:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54989,"mutability":"mutable","name":"circSupply","nameLocation":"30086:10:91","nodeType":"VariableDeclaration","scope":55021,"src":"30078:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54988,"name":"uint256","nodeType":"ElementaryTypeName","src":"30078:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54996,"initialValue":{"arguments":[{"arguments":[{"id":54993,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30118:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30110:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"30110:7:91","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30110:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54990,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"30100: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":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30100: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":"30056:73:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55000,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54909,"src":"30184: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":54998,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"30148:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30157:26:91","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"30148: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":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30148:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55002,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54922,"src":"30197:25:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30148:74:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30224: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":54997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30140:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30140:105:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55006,"nodeType":"ExpressionStatement","src":"30140:105:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55008,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54987,"src":"30264:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55009,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54931,"src":"30273:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30264:22:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30288: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":55007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30256:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30256:51:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55013,"nodeType":"ExpressionStatement","src":"30256:51:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55015,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54989,"src":"30325:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55016,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54937,"src":"30339:18:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30325:32:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30359: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":55014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30317:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30317:66:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55020,"nodeType":"ExpressionStatement","src":"30317:66:91"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"29219:4:91","parameters":{"id":54905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54899,"mutability":"mutable","name":"funderAddress","nameLocation":"29232:13:91","nodeType":"VariableDeclaration","scope":55022,"src":"29224:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54898,"name":"address","nodeType":"ElementaryTypeName","src":"29224:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54901,"mutability":"mutable","name":"fundAmount","nameLocation":"29255:10:91","nodeType":"VariableDeclaration","scope":55022,"src":"29247:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54900,"name":"uint256","nodeType":"ElementaryTypeName","src":"29247:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54904,"mutability":"mutable","name":"mode","nameLocation":"29278:4:91","nodeType":"VariableDeclaration","scope":55022,"src":"29267:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"},"typeName":{"id":54903,"nodeType":"UserDefinedTypeName","pathNode":{"id":54902,"name":"SupplyKind","nameLocations":["29267:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":50182,"src":"29267:10:91"},"referencedDeclaration":50182,"src":"29267:10:91","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50182","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"29223:60:91"},"returnParameters":{"id":54906,"nodeType":"ParameterList","parameters":[],"src":"29291:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55053,"nodeType":"FunctionDefinition","src":"30396:243:91","nodes":[],"body":{"id":55052,"nodeType":"Block","src":"30464:175:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55032,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30483:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30474:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30477:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"30474:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30474:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55034,"nodeType":"ExpressionStatement","src":"30474:26:91"},{"expression":{"arguments":[{"id":55038,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55024,"src":"30518:16:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":55039,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30536:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30536:29:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55035,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"30510:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30513:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"30510:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30510:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55043,"nodeType":"ExpressionStatement","src":"30510:56:91"},{"expression":{"arguments":[{"id":55049,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"30625: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":55044,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"30576:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$51946","typeString":"contract SubnetActorManagerFacet"}},"id":55046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30586:4:91","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"30576:14:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55047,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"30598:25:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"30576:48:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30576:56:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55051,"nodeType":"ExpressionStatement","src":"30576:56:91"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"30405:4:91","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55024,"mutability":"mutable","name":"validatorAddress","nameLocation":"30418:16:91","nodeType":"VariableDeclaration","scope":55053,"src":"30410:24:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55023,"name":"address","nodeType":"ElementaryTypeName","src":"30410:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55026,"mutability":"mutable","name":"pubkey","nameLocation":"30449:6:91","nodeType":"VariableDeclaration","scope":55053,"src":"30436:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55025,"name":"bytes","nodeType":"ElementaryTypeName","src":"30436:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30409:47:91"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[],"src":"30464:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55100,"nodeType":"FunctionDefinition","src":"30645:298:91","nodes":[],"body":{"id":55099,"nodeType":"Block","src":"30713:230:91","nodes":[],"statements":[{"assignments":[55064],"declarations":[{"constant":false,"id":55064,"mutability":"mutable","name":"validators","nameLocation":"30740:10:91","nodeType":"VariableDeclaration","scope":55099,"src":"30723:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55062,"name":"address","nodeType":"ElementaryTypeName","src":"30723:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55063,"nodeType":"ArrayTypeName","src":"30723:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55070,"initialValue":{"arguments":[{"hexValue":"31","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30767: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":55067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30753: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":55065,"name":"address","nodeType":"ElementaryTypeName","src":"30757:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55066,"nodeType":"ArrayTypeName","src":"30757:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30753:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30723:46:91"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55071,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30779:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55073,"indexExpression":{"hexValue":"30","id":55072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30790: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":"30779:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55055,"src":"30795:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30779:25:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55076,"nodeType":"ExpressionStatement","src":"30779:25:91"},{"assignments":[55081],"declarations":[{"constant":false,"id":55081,"mutability":"mutable","name":"privKeys","nameLocation":"30832:8:91","nodeType":"VariableDeclaration","scope":55099,"src":"30815:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55079,"name":"uint256","nodeType":"ElementaryTypeName","src":"30815:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55080,"nodeType":"ArrayTypeName","src":"30815:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55087,"initialValue":{"arguments":[{"hexValue":"31","id":55085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30857: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":55084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"30843: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":55082,"name":"uint256","nodeType":"ElementaryTypeName","src":"30847:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55083,"nodeType":"ArrayTypeName","src":"30847:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30843:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"30815:44:91"},{"expression":{"id":55092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55088,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30869:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55090,"indexExpression":{"hexValue":"30","id":55089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30878: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":"30869:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55091,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55057,"src":"30883:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30869:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55093,"nodeType":"ExpressionStatement","src":"30869:21:91"},{"expression":{"arguments":[{"id":55095,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55064,"src":"30915:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55096,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"30927: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":55094,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"30901: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":55097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30901:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55098,"nodeType":"ExpressionStatement","src":"30901:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30654:13:91","parameters":{"id":55058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55055,"mutability":"mutable","name":"validator","nameLocation":"30676:9:91","nodeType":"VariableDeclaration","scope":55100,"src":"30668:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55054,"name":"address","nodeType":"ElementaryTypeName","src":"30668:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55057,"mutability":"mutable","name":"privKey","nameLocation":"30695:7:91","nodeType":"VariableDeclaration","scope":55100,"src":"30687:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55056,"name":"uint256","nodeType":"ElementaryTypeName","src":"30687:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30667:36:91"},"returnParameters":{"id":55059,"nodeType":"ParameterList","parameters":[],"src":"30713:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55163,"nodeType":"FunctionDefinition","src":"30949:408:91","nodes":[],"body":{"id":55162,"nodeType":"Block","src":"31057:300:91","nodes":[],"statements":[{"assignments":[55115],"declarations":[{"constant":false,"id":55115,"mutability":"mutable","name":"validators","nameLocation":"31084:10:91","nodeType":"VariableDeclaration","scope":55162,"src":"31067:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55113,"name":"address","nodeType":"ElementaryTypeName","src":"31067:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55114,"nodeType":"ArrayTypeName","src":"31067:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55121,"initialValue":{"arguments":[{"hexValue":"32","id":55119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31111: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":55118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31097: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":55116,"name":"address","nodeType":"ElementaryTypeName","src":"31101:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55117,"nodeType":"ArrayTypeName","src":"31101:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31097:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31067:46:91"},{"expression":{"id":55126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55122,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31123:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55124,"indexExpression":{"hexValue":"30","id":55123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31134: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":"31123:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55125,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55102,"src":"31139:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31123:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55127,"nodeType":"ExpressionStatement","src":"31123:26:91"},{"expression":{"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55128,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31159:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55130,"indexExpression":{"hexValue":"31","id":55129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31170: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":"31159:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55131,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55106,"src":"31175:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31159:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55133,"nodeType":"ExpressionStatement","src":"31159:26:91"},{"assignments":[55138],"declarations":[{"constant":false,"id":55138,"mutability":"mutable","name":"privKeys","nameLocation":"31213:8:91","nodeType":"VariableDeclaration","scope":55162,"src":"31196:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55136,"name":"uint256","nodeType":"ElementaryTypeName","src":"31196:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55137,"nodeType":"ArrayTypeName","src":"31196:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55144,"initialValue":{"arguments":[{"hexValue":"32","id":55142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31238: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":55141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31224: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":55139,"name":"uint256","nodeType":"ElementaryTypeName","src":"31228:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55140,"nodeType":"ArrayTypeName","src":"31228:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31224:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31196:44:91"},{"expression":{"id":55149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55145,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31250:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55147,"indexExpression":{"hexValue":"30","id":55146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31259: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":"31250:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55148,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55104,"src":"31264:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31250:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55150,"nodeType":"ExpressionStatement","src":"31250:22:91"},{"expression":{"id":55155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55151,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31282:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55153,"indexExpression":{"hexValue":"31","id":55152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31291: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":"31282:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55154,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55108,"src":"31296:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31282:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55156,"nodeType":"ExpressionStatement","src":"31282:22:91"},{"expression":{"arguments":[{"id":55158,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55115,"src":"31329:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55159,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55138,"src":"31341: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":55157,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31315: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":55160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31315:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55161,"nodeType":"ExpressionStatement","src":"31315:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"30958:13:91","parameters":{"id":55109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55102,"mutability":"mutable","name":"validator1","nameLocation":"30980:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"30972:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55101,"name":"address","nodeType":"ElementaryTypeName","src":"30972:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55104,"mutability":"mutable","name":"privKey1","nameLocation":"31000:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"30992:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55103,"name":"uint256","nodeType":"ElementaryTypeName","src":"30992:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55106,"mutability":"mutable","name":"validator2","nameLocation":"31018:10:91","nodeType":"VariableDeclaration","scope":55163,"src":"31010:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55105,"name":"address","nodeType":"ElementaryTypeName","src":"31010:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55108,"mutability":"mutable","name":"privKey2","nameLocation":"31038:8:91","nodeType":"VariableDeclaration","scope":55163,"src":"31030:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55107,"name":"uint256","nodeType":"ElementaryTypeName","src":"31030:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30971:76:91"},"returnParameters":{"id":55110,"nodeType":"ParameterList","parameters":[],"src":"31057:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55242,"nodeType":"FunctionDefinition","src":"31363:568:91","nodes":[],"body":{"id":55241,"nodeType":"Block","src":"31563:368:91","nodes":[],"statements":[{"assignments":[55182],"declarations":[{"constant":false,"id":55182,"mutability":"mutable","name":"validators","nameLocation":"31590:10:91","nodeType":"VariableDeclaration","scope":55241,"src":"31573:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55180,"name":"address","nodeType":"ElementaryTypeName","src":"31573:7:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55181,"nodeType":"ArrayTypeName","src":"31573:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55188,"initialValue":{"arguments":[{"hexValue":"33","id":55186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31617: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":55185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31603: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":55183,"name":"address","nodeType":"ElementaryTypeName","src":"31607:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55184,"nodeType":"ArrayTypeName","src":"31607:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31573:46:91"},{"expression":{"id":55193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55189,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31629:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55191,"indexExpression":{"hexValue":"30","id":55190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31640: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":"31629:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55192,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55165,"src":"31645:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31629:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55194,"nodeType":"ExpressionStatement","src":"31629:26:91"},{"expression":{"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55195,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31665:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55197,"indexExpression":{"hexValue":"31","id":55196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31676: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":"31665:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55198,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55169,"src":"31681:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31665:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55200,"nodeType":"ExpressionStatement","src":"31665:26:91"},{"expression":{"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55201,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31701:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55203,"indexExpression":{"hexValue":"32","id":55202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31712: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":"31701:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55204,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55173,"src":"31717:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31701:26:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55206,"nodeType":"ExpressionStatement","src":"31701:26:91"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"privKeys","nameLocation":"31755:8:91","nodeType":"VariableDeclaration","scope":55241,"src":"31738:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55209,"name":"uint256","nodeType":"ElementaryTypeName","src":"31738:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55210,"nodeType":"ArrayTypeName","src":"31738:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":55217,"initialValue":{"arguments":[{"hexValue":"33","id":55215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31780: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":55214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"31766: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":55212,"name":"uint256","nodeType":"ElementaryTypeName","src":"31770:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55213,"nodeType":"ArrayTypeName","src":"31770:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31766:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"31738:44:91"},{"expression":{"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55218,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31792:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55220,"indexExpression":{"hexValue":"30","id":55219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31801: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":"31792:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55221,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55167,"src":"31806:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31792:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55223,"nodeType":"ExpressionStatement","src":"31792:22:91"},{"expression":{"id":55228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55224,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31824:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55226,"indexExpression":{"hexValue":"31","id":55225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31833: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":"31824:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55227,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55171,"src":"31838:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31824:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55229,"nodeType":"ExpressionStatement","src":"31824:22:91"},{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55230,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31856:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55232,"indexExpression":{"hexValue":"32","id":55231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31865: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":"31856:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55233,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55175,"src":"31870:8:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31856:22:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55235,"nodeType":"ExpressionStatement","src":"31856:22:91"},{"expression":{"arguments":[{"id":55237,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55182,"src":"31903:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55238,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"31915: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":55236,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[55100,55163,55242,55393],"referencedDeclaration":55393,"src":"31889: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":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31889:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55240,"nodeType":"ExpressionStatement","src":"31889:35:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31372:13:91","parameters":{"id":55176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55165,"mutability":"mutable","name":"validator1","nameLocation":"31403:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31395:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55164,"name":"address","nodeType":"ElementaryTypeName","src":"31395:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55167,"mutability":"mutable","name":"privKey1","nameLocation":"31431:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31423:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55166,"name":"uint256","nodeType":"ElementaryTypeName","src":"31423:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55169,"mutability":"mutable","name":"validator2","nameLocation":"31457:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31449:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55168,"name":"address","nodeType":"ElementaryTypeName","src":"31449:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55171,"mutability":"mutable","name":"privKey2","nameLocation":"31485:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31477:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55170,"name":"uint256","nodeType":"ElementaryTypeName","src":"31477:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55173,"mutability":"mutable","name":"validator3","nameLocation":"31511:10:91","nodeType":"VariableDeclaration","scope":55242,"src":"31503:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55172,"name":"address","nodeType":"ElementaryTypeName","src":"31503:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55175,"mutability":"mutable","name":"privKey3","nameLocation":"31539:8:91","nodeType":"VariableDeclaration","scope":55242,"src":"31531:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55174,"name":"uint256","nodeType":"ElementaryTypeName","src":"31531:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31385:168:91"},"returnParameters":{"id":55177,"nodeType":"ParameterList","parameters":[],"src":"31563:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55393,"nodeType":"FunctionDefinition","src":"31937:1107:91","nodes":[],"body":{"id":55392,"nodeType":"Block","src":"32025:1019:91","nodes":[],"statements":[{"assignments":[55252],"declarations":[{"constant":false,"id":55252,"mutability":"mutable","name":"n","nameLocation":"32043:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32035:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55251,"name":"uint256","nodeType":"ElementaryTypeName","src":"32035:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55255,"initialValue":{"expression":{"id":55253,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32047:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32058:6:91","memberName":"length","nodeType":"MemberAccess","src":"32047:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32035:29:91"},{"assignments":[55260],"declarations":[{"constant":false,"id":55260,"mutability":"mutable","name":"signatures","nameLocation":"32090:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32075:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55258,"name":"bytes","nodeType":"ElementaryTypeName","src":"32075:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55259,"nodeType":"ArrayTypeName","src":"32075:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":55266,"initialValue":{"arguments":[{"id":55264,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32115:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32103: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":55261,"name":"bytes","nodeType":"ElementaryTypeName","src":"32107:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55262,"nodeType":"ArrayTypeName","src":"32107:7:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32103:14:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32075:42:91"},{"assignments":[55268,null],"declarations":[{"constant":false,"id":55268,"mutability":"mutable","name":"nextConfigNum","nameLocation":"32136:13:91","nodeType":"VariableDeclaration","scope":55392,"src":"32129:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55267,"name":"uint64","nodeType":"ElementaryTypeName","src":"32129:6:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":55272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55269,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32155:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32164:23:91","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50697,"src":"32155:32:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32155:34:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"32128:61:91"},{"assignments":[55274],"declarations":[{"constant":false,"id":55274,"mutability":"mutable","name":"h","nameLocation":"32208:1:91","nodeType":"VariableDeclaration","scope":55392,"src":"32200:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55273,"name":"uint256","nodeType":"ElementaryTypeName","src":"32200:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55282,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55275,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32212:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32221:28:91","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50825,"src":"32212:37:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32212:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55278,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32254:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32263:19:91","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50805,"src":"32254:28:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32254:30:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32212:72:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32200:84:91"},{"assignments":[55285],"declarations":[{"constant":false,"id":55285,"mutability":"mutable","name":"checkpoint","nameLocation":"32321:10:91","nodeType":"VariableDeclaration","scope":55392,"src":"32295:36:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":55284,"nodeType":"UserDefinedTypeName","pathNode":{"id":55283,"name":"BottomUpCheckpoint","nameLocations":["32295:18:91"],"nodeType":"IdentifierPath","referencedDeclaration":49885,"src":"32295:18:91"},"referencedDeclaration":49885,"src":"32295:18:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55307,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":55293,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32421:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32413:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55291,"name":"address","nodeType":"ElementaryTypeName","src":"32413:7:91","typeDescriptions":{}}},"id":55294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32413:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55287,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"32377:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":55288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32386:9:91","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50627,"src":"32377:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32398:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"32377: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":55295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55296,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32459:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55300,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55274,"src":"32506:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32495:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32499:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32495:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32495:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55297,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32485:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32485:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55303,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"32548:13:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32548: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":55286,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49885,"src":"32334:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49885_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["32367:8:91","32446:11:91","32474:9:91","32523:23:91"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"32334:242:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"32295:281:91"},{"expression":{"arguments":[{"arguments":[{"id":55313,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"32603:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32595:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55311,"name":"address","nodeType":"ElementaryTypeName","src":"32595:7:91","typeDescriptions":{}}},"id":55314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32595:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32615: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":55308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32587:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32590:4:91","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"32587:7:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32587:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55317,"nodeType":"ExpressionStatement","src":"32587:38:91"},{"assignments":[55319],"declarations":[{"constant":false,"id":55319,"mutability":"mutable","name":"hash","nameLocation":"32644:4:91","nodeType":"VariableDeclaration","scope":55392,"src":"32636:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32636:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55326,"initialValue":{"arguments":[{"arguments":[{"id":55323,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32672: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":55321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32661:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32665:6:91","memberName":"encode","nodeType":"MemberAccess","src":"32661:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32661:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55320,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"32651:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32651:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32636:48:91"},{"body":{"id":55362,"nodeType":"Block","src":"32727:140:91","statements":[{"assignments":[55338,55340,55342],"declarations":[{"constant":false,"id":55338,"mutability":"mutable","name":"v","nameLocation":"32748:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32742:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55337,"name":"uint8","nodeType":"ElementaryTypeName","src":"32742:5:91","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55340,"mutability":"mutable","name":"r","nameLocation":"32759:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32751:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32751:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55342,"mutability":"mutable","name":"s","nameLocation":"32770:1:91","nodeType":"VariableDeclaration","scope":55362,"src":"32762:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32762:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55350,"initialValue":{"arguments":[{"baseExpression":{"id":55345,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55248,"src":"32783:8:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55347,"indexExpression":{"id":55346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32792:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32783:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55348,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55319,"src":"32796:4:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55343,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32775:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32778:4:91","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"32775: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":55349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32775:26:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"32741:60:91"},{"expression":{"id":55360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55351,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"32815:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55353,"indexExpression":{"id":55352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32826:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32815:13:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55356,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"32848:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55342,"src":"32851:1:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55358,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"32854: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":55354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32831:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32835:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"32831:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32831:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"32815:41:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55361,"nodeType":"ExpressionStatement","src":"32815:41:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32715:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55332,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32719:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32715:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55363,"initializationExpression":{"assignments":[55328],"declarations":[{"constant":false,"id":55328,"mutability":"mutable","name":"i","nameLocation":"32708:1:91","nodeType":"VariableDeclaration","scope":55363,"src":"32700:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55327,"name":"uint256","nodeType":"ElementaryTypeName","src":"32700:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55330,"initialValue":{"hexValue":"30","id":55329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32712:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32700:13:91"},"loopExpression":{"expression":{"id":55335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32722:3:91","subExpression":{"id":55334,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55328,"src":"32722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55336,"nodeType":"ExpressionStatement","src":"32722:3:91"},"nodeType":"ForStatement","src":"32695:172:91"},{"body":{"id":55390,"nodeType":"Block","src":"32909:129:91","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55377,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"32932:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55379,"indexExpression":{"id":55378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32943:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32932:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55374,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"32923:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32926:5:91","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"32923:8:91","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32923:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55381,"nodeType":"ExpressionStatement","src":"32923:23:91"},{"expression":{"arguments":[{"id":55385,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55285,"src":"32992:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49885_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55386,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"33004:10:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55387,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"33016: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":55382,"name":"saCheckpointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"32960:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorCheckpointingFacet_$50577","typeString":"contract SubnetActorCheckpointingFacet"}},"id":55384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32975:16:91","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":50370,"src":"32960: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":55388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32960:67:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55389,"nodeType":"ExpressionStatement","src":"32960:67:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32897:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55369,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"32901:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32897:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55391,"initializationExpression":{"assignments":[55365],"declarations":[{"constant":false,"id":55365,"mutability":"mutable","name":"i","nameLocation":"32890:1:91","nodeType":"VariableDeclaration","scope":55391,"src":"32882:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55364,"name":"uint256","nodeType":"ElementaryTypeName","src":"32882:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55367,"initialValue":{"hexValue":"30","id":55366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32894:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32882:13:91"},"loopExpression":{"expression":{"id":55372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32904:3:91","subExpression":{"id":55371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"32904:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55373,"nodeType":"ExpressionStatement","src":"32904:3:91"},"nodeType":"ForStatement","src":"32877:161:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"31946:13:91","parameters":{"id":55249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55245,"mutability":"mutable","name":"validators","nameLocation":"31977:10:91","nodeType":"VariableDeclaration","scope":55393,"src":"31960:27:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55243,"name":"address","nodeType":"ElementaryTypeName","src":"31960:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55244,"nodeType":"ArrayTypeName","src":"31960:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55248,"mutability":"mutable","name":"privKeys","nameLocation":"32006:8:91","nodeType":"VariableDeclaration","scope":55393,"src":"31989:25:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55246,"name":"uint256","nodeType":"ElementaryTypeName","src":"31989:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55247,"nodeType":"ArrayTypeName","src":"31989:9:91","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"31959:56:91"},"returnParameters":{"id":55250,"nodeType":"ParameterList","parameters":[],"src":"32025:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55428,"nodeType":"FunctionDefinition","src":"33050:305:91","nodes":[],"body":{"id":55427,"nodeType":"Block","src":"33097:258:91","nodes":[],"statements":[{"assignments":[55399],"declarations":[{"constant":false,"id":55399,"mutability":"mutable","name":"expectedNonce","nameLocation":"33115:13:91","nodeType":"VariableDeclaration","scope":55427,"src":"33107:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55398,"name":"uint256","nodeType":"ElementaryTypeName","src":"33107:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55405,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55400,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33131:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33140:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33131:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33131:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33158:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33131:28:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"33107:52:91"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55413,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33231:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33235:6:91","memberName":"sender","nodeType":"MemberAccess","src":"33231:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55411,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40906,"src":"33209:16:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40906_$","typeString":"type(library FvmAddressHelper)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33226:4:91","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40778,"src":"33209: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":55415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33209: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":55406,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33169:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33179:7:91","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"33169:17:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55409,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55395,"src":"33194:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33169:39:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49951_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33169:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55417,"nodeType":"ExpressionStatement","src":"33169:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55419,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"33261:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33270:13:91","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"33261:22:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33261:24:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55422,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55399,"src":"33289:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33261:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33304: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":55418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33253:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33253:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55426,"nodeType":"ExpressionStatement","src":"33253:95:91"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"33059:7:91","parameters":{"id":55396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55395,"mutability":"mutable","name":"releaseAmount","nameLocation":"33075:13:91","nodeType":"VariableDeclaration","scope":55428,"src":"33067:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55394,"name":"uint256","nodeType":"ElementaryTypeName","src":"33067:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33066:23:91"},"returnParameters":{"id":55397,"nodeType":"ParameterList","parameters":[],"src":"33097:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55483,"nodeType":"FunctionDefinition","src":"33361:536:91","nodes":[],"body":{"id":55482,"nodeType":"Block","src":"33430:467:91","nodes":[],"statements":[{"assignments":[55436],"declarations":[{"constant":false,"id":55436,"mutability":"mutable","name":"balanceBefore","nameLocation":"33448:13:91","nodeType":"VariableDeclaration","scope":55482,"src":"33440:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55435,"name":"uint256","nodeType":"ElementaryTypeName","src":"33440:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55439,"initialValue":{"expression":{"id":55437,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33464:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33478:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33464:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33440:45:91"},{"assignments":[null,55441,null,null,null],"declarations":[null,{"constant":false,"id":55441,"mutability":"mutable","name":"stakedBefore","nameLocation":"33507:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33499:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55440,"name":"uint256","nodeType":"ElementaryTypeName","src":"33499:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55445,"initialValue":{"arguments":[{"id":55443,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33539:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55442,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33529: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":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33529: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":"33496:57:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55446,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"33564:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33574:8:91","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"33564:18:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55449,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33590:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33564:38:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33564:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"33564:40:91"},{"assignments":[55454],"declarations":[{"constant":false,"id":55454,"mutability":"mutable","name":"balanceAfter","nameLocation":"33623:12:91","nodeType":"VariableDeclaration","scope":55482,"src":"33615:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55453,"name":"uint256","nodeType":"ElementaryTypeName","src":"33615:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55457,"initialValue":{"expression":{"id":55455,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33638:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33652:7:91","memberName":"balance","nodeType":"MemberAccess","src":"33638:21:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33615:44:91"},{"assignments":[null,55459,null,null,null],"declarations":[null,{"constant":false,"id":55459,"mutability":"mutable","name":"stakedAfter","nameLocation":"33680:11:91","nodeType":"VariableDeclaration","scope":55482,"src":"33672:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55458,"name":"uint256","nodeType":"ElementaryTypeName","src":"33672:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55463,"initialValue":{"arguments":[{"id":55461,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55432,"src":"33711:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55460,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"33701: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":55462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33701: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":"33669:56:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55465,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55454,"src":"33744:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55466,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55436,"src":"33760:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55467,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33776:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33760:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33744:43:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33789: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":55464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33736:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33736:74:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55472,"nodeType":"ExpressionStatement","src":"33736:74:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55474,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55459,"src":"33828:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55475,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"33843:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55476,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"33858:11:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33843:26:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33828:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33871: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":55473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33820:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33820:70:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55481,"nodeType":"ExpressionStatement","src":"33820:70:91"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"33370:8:91","parameters":{"id":55433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55430,"mutability":"mutable","name":"stakeAmount","nameLocation":"33387:11:91","nodeType":"VariableDeclaration","scope":55483,"src":"33379:19:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55429,"name":"uint256","nodeType":"ElementaryTypeName","src":"33379:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55432,"mutability":"mutable","name":"subnetAddress","nameLocation":"33408:13:91","nodeType":"VariableDeclaration","scope":55483,"src":"33400:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55431,"name":"address","nodeType":"ElementaryTypeName","src":"33400:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33378:44:91"},"returnParameters":{"id":55434,"nodeType":"ParameterList","parameters":[],"src":"33430:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55568,"nodeType":"FunctionDefinition","src":"33903:813:91","nodes":[],"body":{"id":55567,"nodeType":"Block","src":"33998:718:91","nodes":[],"statements":[{"assignments":[55495],"declarations":[{"constant":false,"id":55495,"mutability":"mutable","name":"manager","nameLocation":"34028:7:91","nodeType":"VariableDeclaration","scope":55567,"src":"34008:27:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55494,"nodeType":"UserDefinedTypeName","pathNode":{"id":55493,"name":"GatewayManagerFacet","nameLocations":["34008:19:91"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"34008:19:91"},"referencedDeclaration":38870,"src":"34008:19:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55502,"initialValue":{"arguments":[{"arguments":[{"id":55499,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34066:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34058:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55497,"name":"address","nodeType":"ElementaryTypeName","src":"34058:7:91","typeDescriptions":{}}},"id":55500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34058:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55496,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"34038:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34038:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"34008:62:91"},{"expression":{"arguments":[{"hexValue":"30","id":55508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34117: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":55503,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55495,"src":"34081:7:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34089:8:91","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"34081:16:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55506,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34105:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"34081:35:91","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:38:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55510,"nodeType":"ExpressionStatement","src":"34081:38:91"},{"assignments":[55513,55515,55517,null,55519],"declarations":[{"constant":false,"id":55513,"mutability":"mutable","name":"id","nameLocation":"34147:2:91","nodeType":"VariableDeclaration","scope":55567,"src":"34131:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55512,"nodeType":"UserDefinedTypeName","pathNode":{"id":55511,"name":"SubnetID","nameLocations":["34131:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34131:8:91"},"referencedDeclaration":50030,"src":"34131:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55515,"mutability":"mutable","name":"stake","nameLocation":"34159:5:91","nodeType":"VariableDeclaration","scope":55567,"src":"34151:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55514,"name":"uint256","nodeType":"ElementaryTypeName","src":"34151:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55517,"mutability":"mutable","name":"topDownNonce","nameLocation":"34174:12:91","nodeType":"VariableDeclaration","scope":55567,"src":"34166:20:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55516,"name":"uint256","nodeType":"ElementaryTypeName","src":"34166:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55519,"mutability":"mutable","name":"circSupply","nameLocation":"34198:10:91","nodeType":"VariableDeclaration","scope":55567,"src":"34190:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55518,"name":"uint256","nodeType":"ElementaryTypeName","src":"34190:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55524,"initialValue":{"arguments":[{"id":55521,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34237:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55522,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"34264: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":55520,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"34212: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":55523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34212: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":"34130:146:91"},{"assignments":[55527],"declarations":[{"constant":false,"id":55527,"mutability":"mutable","name":"parentNetwork","nameLocation":"34303:13:91","nodeType":"VariableDeclaration","scope":55567,"src":"34287:29:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55526,"nodeType":"UserDefinedTypeName","pathNode":{"id":55525,"name":"SubnetID","nameLocations":["34287:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34287:8:91"},"referencedDeclaration":50030,"src":"34287:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55531,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55528,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"34319:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34328:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"34319:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34319:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"34287:57:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55533,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"34376:2:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34379:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34376: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":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34376:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55538,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"34420:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55536,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"34391:13:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34405:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"34391: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":55539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:43:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34435:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"34391: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":55541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34391:52:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34376:67:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34457: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":55532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34355:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34355:181:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55545,"nodeType":"ExpressionStatement","src":"34355:181:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55547,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"34554:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55548,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"34563:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34554:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34575: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":55546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34546:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34546:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55552,"nodeType":"ExpressionStatement","src":"34546:48:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55554,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55517,"src":"34612:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34628:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34612:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34631: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":55553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34604:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34604:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"34604:46:91"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55561,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55519,"src":"34668:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34682:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34668:15:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34685: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":55560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34660:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55566,"nodeType":"ExpressionStatement","src":"34660:49:91"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"33912:16:91","parameters":{"id":55491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55485,"mutability":"mutable","name":"collateral","nameLocation":"33937:10:91","nodeType":"VariableDeclaration","scope":55568,"src":"33929:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55484,"name":"uint256","nodeType":"ElementaryTypeName","src":"33929:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55487,"mutability":"mutable","name":"subnetAddress","nameLocation":"33957:13:91","nodeType":"VariableDeclaration","scope":55568,"src":"33949:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55486,"name":"address","nodeType":"ElementaryTypeName","src":"33949:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55490,"mutability":"mutable","name":"gw","nameLocation":"33987:2:91","nodeType":"VariableDeclaration","scope":55568,"src":"33972:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55489,"nodeType":"UserDefinedTypeName","pathNode":{"id":55488,"name":"GatewayDiamond","nameLocations":["33972:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"33972:14:91"},"referencedDeclaration":36170,"src":"33972:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"33928:62:91"},"returnParameters":{"id":55492,"nodeType":"ParameterList","parameters":[],"src":"33998:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55582,"nodeType":"FunctionDefinition","src":"34722:150:91","nodes":[],"body":{"id":55581,"nodeType":"Block","src":"34796:76:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55576,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"34823:10:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55577,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"34835:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55578,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"34850: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":55575,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55568,"src":"34806:16:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34806:59:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55580,"nodeType":"ExpressionStatement","src":"34806:59:91"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"34731:14:91","parameters":{"id":55573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55570,"mutability":"mutable","name":"collateral","nameLocation":"34754:10:91","nodeType":"VariableDeclaration","scope":55582,"src":"34746:18:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55569,"name":"uint256","nodeType":"ElementaryTypeName","src":"34746:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55572,"mutability":"mutable","name":"subnetAddress","nameLocation":"34774:13:91","nodeType":"VariableDeclaration","scope":55582,"src":"34766:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55571,"name":"address","nodeType":"ElementaryTypeName","src":"34766:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34745:43:91"},"returnParameters":{"id":55574,"nodeType":"ParameterList","parameters":[],"src":"34796:0:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55652,"nodeType":"FunctionDefinition","src":"34878:541:91","nodes":[],"body":{"id":55651,"nodeType":"Block","src":"35032:387:91","nodes":[],"statements":[{"expression":{"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55601,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"35042:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55605,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35082:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35074:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55603,"name":"address","nodeType":"ElementaryTypeName","src":"35074:7:91","typeDescriptions":{}}},"id":55606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35074:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55602,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"35054:19:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35054:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"35042:44:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55609,"nodeType":"ExpressionStatement","src":"35042:44:91"},{"expression":{"id":55617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55610,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35096:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55614,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55587,"src":"35134:2:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35126:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55612,"name":"address","nodeType":"ElementaryTypeName","src":"35126:7:91","typeDescriptions":{}}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35126:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55611,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"35107:18:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35107:31:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"35096:42:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55618,"nodeType":"ExpressionStatement","src":"35096:42:91"},{"assignments":[55621],"declarations":[{"constant":false,"id":55621,"mutability":"mutable","name":"subnetId","nameLocation":"35165:8:91","nodeType":"VariableDeclaration","scope":55651,"src":"35149:24:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55620,"nodeType":"UserDefinedTypeName","pathNode":{"id":55619,"name":"SubnetID","nameLocations":["35149:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35149:8:91"},"referencedDeclaration":50030,"src":"35149:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55628,"initialValue":{"arguments":[{"id":55626,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55584,"src":"35217:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55622,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35176:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35185:14:91","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"35176:23:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50030_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:25:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35202:14:91","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47688,"src":"35176: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":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35176:55:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"35149:82:91"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"subnet","nameLocation":"35256:6:91","nodeType":"VariableDeclaration","scope":55651,"src":"35242:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55630,"nodeType":"UserDefinedTypeName","pathNode":{"id":55629,"name":"Subnet","nameLocations":["35242:6:91"],"nodeType":"IdentifierPath","referencedDeclaration":50044,"src":"35242:6:91"},"referencedDeclaration":50044,"src":"35242:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55638,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55634,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"35282:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},"id":55635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35291:6:91","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47614,"src":"35282: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":55636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35282:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55632,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"35265:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35274:7:91","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"35265: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":55637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35265:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"35242:58:91"},{"expression":{"components":[{"expression":{"id":55639,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35319:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35326:2:91","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50043,"src":"35319:9:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55641,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35330:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35337:5:91","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"35330:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55643,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35344:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35351:12:91","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50038,"src":"35344:19:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55645,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35365:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35372:20:91","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50040,"src":"35365:27:91","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55647,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"35394:6:91","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50044_memory_ptr","typeString":"struct Subnet memory"}},"id":55648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35401:10:91","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50036,"src":"35394:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35318: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":55600,"id":55650,"nodeType":"Return","src":"35311:101:91"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"34887:11:91","parameters":{"id":55588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55584,"mutability":"mutable","name":"subnetAddress","nameLocation":"34916:13:91","nodeType":"VariableDeclaration","scope":55652,"src":"34908:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55583,"name":"address","nodeType":"ElementaryTypeName","src":"34908:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55587,"mutability":"mutable","name":"gw","nameLocation":"34954:2:91","nodeType":"VariableDeclaration","scope":55652,"src":"34939:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55586,"nodeType":"UserDefinedTypeName","pathNode":{"id":55585,"name":"GatewayDiamond","nameLocations":["34939:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"34939:14:91"},"referencedDeclaration":36170,"src":"34939:14:91","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"34898:64:91"},"returnParameters":{"id":55600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34979:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55590,"nodeType":"UserDefinedTypeName","pathNode":{"id":55589,"name":"SubnetID","nameLocations":["34979:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"34979:8:91"},"referencedDeclaration":50030,"src":"34979:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"34996:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55592,"name":"uint256","nodeType":"ElementaryTypeName","src":"34996:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35005:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55594,"name":"uint256","nodeType":"ElementaryTypeName","src":"35005:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35014:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55596,"name":"uint256","nodeType":"ElementaryTypeName","src":"35014:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55652,"src":"35023:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55598,"name":"uint256","nodeType":"ElementaryTypeName","src":"35023:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34978:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55674,"nodeType":"FunctionDefinition","src":"35425:177:91","nodes":[],"body":{"id":55673,"nodeType":"Block","src":"35536:66:91","nodes":[],"statements":[{"expression":{"arguments":[{"id":55669,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55654,"src":"35565:13:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55670,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"35580: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":55668,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"35553: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":55671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35553: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":55667,"id":55672,"nodeType":"Return","src":"35546:49:91"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"35434:9:91","parameters":{"id":55655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55654,"mutability":"mutable","name":"subnetAddress","nameLocation":"35452:13:91","nodeType":"VariableDeclaration","scope":55674,"src":"35444:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55653,"name":"address","nodeType":"ElementaryTypeName","src":"35444:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35443:23:91"},"returnParameters":{"id":55667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35483:15:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55657,"nodeType":"UserDefinedTypeName","pathNode":{"id":55656,"name":"SubnetID","nameLocations":["35483:8:91"],"nodeType":"IdentifierPath","referencedDeclaration":50030,"src":"35483:8:91"},"referencedDeclaration":50030,"src":"35483:8:91","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35500:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55659,"name":"uint256","nodeType":"ElementaryTypeName","src":"35500:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35509:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55661,"name":"uint256","nodeType":"ElementaryTypeName","src":"35509:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35518:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55663,"name":"uint256","nodeType":"ElementaryTypeName","src":"35518:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55674,"src":"35527:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55665,"name":"uint256","nodeType":"ElementaryTypeName","src":"35527:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35482:53:91"},"scope":55675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53053,"name":"Test","nameLocations":["8753:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8753:4:91"},"id":53054,"nodeType":"InheritanceSpecifier","src":"8753:4:91"},{"baseName":{"id":53055,"name":"TestParams","nameLocations":["8759:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":52695,"src":"8759:10:91"},"id":53056,"nodeType":"InheritanceSpecifier","src":"8759:10:91"},{"baseName":{"id":53057,"name":"TestRegistry","nameLocations":["8771:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":52759,"src":"8771:12:91"},"id":53058,"nodeType":"InheritanceSpecifier","src":"8771:12:91"},{"baseName":{"id":53059,"name":"TestSubnetActor","nameLocations":["8785:15:91"],"nodeType":"IdentifierPath","referencedDeclaration":53052,"src":"8785:15:91"},"id":53060,"nodeType":"InheritanceSpecifier","src":"8785:15:91"},{"baseName":{"id":53061,"name":"TestGatewayActor","nameLocations":["8802:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":52888,"src":"8802:16:91"},"id":53062,"nodeType":"InheritanceSpecifier","src":"8802:16:91"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8730:19:91","scope":55676,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestPresets.sol/L1GatewayActorDiamond.json b/contracts/.out/IntegrationTestPresets.sol/L1GatewayActorDiamond.json new file mode 100644 index 000000000..0d77a4c04 --- /dev/null +++ b/contracts/.out/IntegrationTestPresets.sol/L1GatewayActorDiamond.json @@ -0,0 +1 @@ +{"abi":[{"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$__5af490811563000012e85760009163000012bb575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603d5482603d55808310630000123d575b5060200190603d60005260206000208160031c9160005b83811063000011e9575060071981169003806300001190575b6040516202c52390816300002f218239f35b9260009360005b81811063000011b057505050015538808080630000117e565b909194602063000011dd600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300001197565b6000805b6008811063000012065750838201556001016300001165565b959060206300001232600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960163000011ed565b603d6000526020600020600780850160031c8201920160031c0190601c8460021b16806300001288575b505b818110630000127a5750630000114e565b600081556001016300001269565b600019908183019182549160200360031b1c169055386300001267565b634e487b7160e01b600052604160045260246000fd5b63000012e091503d806000833e63000012d681836300002e5b565b8101906300002e80565b386300001117565b6040513d6000823e3d90fd5b9260009360005b818403811063000013195750505060031c01553880808063000010ac565b90919460206300001346600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910163000012fb565b6000805b60088110630000136f5750838201556001016300001090565b94906020630000139b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001356565b603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e600284901b601c1680630000140e575b50600780850160031c8201920160031c01905b81811063000014005750630000107d565b6000815560010163000013ef565b60001990816007870160031c8401019182549160200360031b1c1690553863000013dc565b630000144e91503d806000833e63000012d681836300002e5b565b386300001046565b9260009360005b81811063000014795750505060031c0155388080806300000fdd565b909194602063000014a6600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101630000145d565b6000805b6008811063000014cf5750838201556001016300000fc1565b9490602063000014fb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000014b6565b603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d600284901b601c1680630000156e575b50600780850160031c8201920160031c01905b818110630000156057506300000fae565b60008155600101630000154f565b60001990816007870160031c8401019182549160200360031b1c16905538630000153c565b63000015ae91503d806000833e63000012d681836300002e5b565b386300000f77565b60009260005b60071983168303811063000015dc57505060031c01553880806300000f02565b909360206300001608600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000015bc565b6000805b6008811063000016305750838201556001016300000ee7565b94906020630000165c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001617565b60396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3600284901b601c168063000016d0575b506007840160031c81015b6007830160031c8201811063000016c25750506300000ed4565b6000815560010163000016a8565b60001990816007870160031c8401019182549160200360031b1c16905538630000169d565b630000171091503d806000833e63000012d681836300002e5b565b386300000e9d565b60009260005b600719831683038110630000173e57505060031c01553880806300000e28565b90936020630000176a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000171e565b6000805b6008811063000017925750838201556001016300000e0d565b9490602063000017be600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001779565b603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e600284901b601c16806300001832575b506007840160031c81015b6007830160031c8201811063000018245750506300000dfa565b60008155600101630000180a565b60001990816007870160031c8401019182549160200360031b1c1690553863000017ff565b630000187291503d806000833e63000012d681836300002e5b565b386300000dc3565b60009260005b60071983168303811063000018a057505060031c01553880806300000d59565b9093602063000018cc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001880565b6000805b6008811063000018f45750838201556001016300000d3e565b949060206300001920600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000018db565b60386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199600284901b601c16806300001994575b506007840160031c81015b6007830160031c8201811063000019865750506300000d2b565b60008155600101630000196c565b60001990816007870160031c8401019182549160200360031b1c169055386300001961565b63000019d491503d806000833e63000012d681836300002e5b565b386300000cf4565b60009260005b6007198316830381106300001a0257505060031c01553880806300000c7f565b909360206300001a2e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000019e2565b6000805b600881106300001a565750838201556001016300000c64565b949060206300001a82600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001a3d565b60376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae600284901b601c16806300001af6575b506007840160031c81015b6007830160031c820181106300001ae85750506300000c51565b600081556001016300001ace565b60001990816007870160031c8401019182549160200360031b1c169055386300001ac3565b6300001b3691503d806000833e63000012d681836300002e5b565b386300000c1a565b60009260005b6007198316830381106300001b6457505060031c01553880806300000ba5565b909360206300001b90600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001b44565b6000805b600881106300001bb85750838201556001016300000b8a565b949060206300001be4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001b9f565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c16806300001c58575b506007840160031c81015b6007830160031c820181106300001c4a5750506300000b77565b600081556001016300001c30565b60001990816007870160031c8401019182549160200360031b1c169055386300001c25565b6300001c9891503d806000833e63000012d681836300002e5b565b386300000b40565b60009260005b6007198316830381106300001cc657505060031c01553880806300000ad6565b909360206300001cf2600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001ca6565b6000805b600881106300001d1a5750838201556001016300000abb565b949060206300001d46600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001d01565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c16806300001dba575b506007840160031c81015b6007830160031c820181106300001dac5750506300000aa8565b600081556001016300001d92565b60001990816007870160031c8401019182549160200360031b1c169055386300001d87565b6300001dfa91503d806000833e63000012d681836300002e5b565b386300000a71565b60009260005b6007198316830381106300001e2857505060031c01553880806300000a07565b909360206300001e54600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001e08565b6000805b600881106300001e7c57508382015560010163000009ec565b949060206300001ea8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001e63565b602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f600284901b601c16806300001f1c575b506007840160031c81015b6007830160031c820181106300001f0e57505063000009d9565b600081556001016300001ef4565b60001990816007870160031c8401019182549160200360031b1c169055386300001ee9565b6300001f5c91503d806000833e63000012d681836300002e5b565b3863000009a2565b60009260005b6007198316830381106300001f8a57505060031c01553880806300000939565b909360206300001fb6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001f6a565b6000805b600881106300001fde575083820155600101630000091e565b94906020630000200a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001fc5565b602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2600284901b601c1680630000207e575b506007840160031c81015b6007830160031c820181106300002070575050630000090b565b600081556001016300002056565b60001990816007870160031c8401019182549160200360031b1c16905538630000204b565b63000020be91503d806000833e63000012d681836300002e5b565b3863000008d4565b60009260005b60071983168303811063000020ec57505060031c0155388080630000086d565b909360206300002118600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000020cc565b6000805b6008811063000021405750838201556001016300000852565b94906020630000216c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002127565b60296000527fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac600284901b601c168063000021e0575b506007840160031c81015b6007830160031c8201811063000021d2575050630000083f565b6000815560010163000021b8565b60001990816007870160031c8401019182549160200360031b1c1690553863000021ad565b630000222091503d806000833e63000012d681836300002e5b565b386300000808565b60009260005b600719831683038110630000224e57505060031c015538808063000007a1565b90936020630000227a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000222e565b6000805b6008811063000022a25750838201556001016300000786565b9490602063000022ce600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002289565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c16806300002342575b506007840160031c81015b6007830160031c8201811063000023345750506300000773565b60008155600101630000231a565b60001990816007870160031c8401019182549160200360031b1c16905538630000230f565b630000238291503d806000833e63000012d681836300002e5b565b38630000073c565b60009260005b60071983168303811063000023b057505060031c015538808063000006c7565b9093602063000023dc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002390565b6000805b60088110630000240457508382015560010163000006ac565b949060206300002430600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000023eb565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168063000024a4575b506007840160031c81015b6007830160031c8201811063000024965750506300000699565b60008155600101630000247c565b60001990816007870160031c8401019182549160200360031b1c169055386300002471565b63000024e491503d806000833e63000012d681836300002e5b565b386300000662565b60009260005b600719831683038110630000251257505060031c015538808063000005ed565b90936020630000253e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000024f2565b6000805b60088110630000256657508382015560010163000005d2565b949060206300002592600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501630000254d565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c16806300002606575b506007840160031c81015b6007830160031c8201811063000025f857505063000005bf565b6000815560010163000025de565b60001990816007870160031c8401019182549160200360031b1c1690553863000025d3565b630000264691503d806000833e63000012d681836300002e5b565b386300000588565b60009260005b600719831683038110630000267457505060031c01553880806300000513565b9093602063000026a0600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002654565b6000805b6008811063000026c857508382015560010163000004f8565b9490602063000026f4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000026af565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c16806300002768575b506007840160031c81015b6007830160031c82018110630000275a57505063000004e5565b600081556001016300002740565b60001990816007870160031c8401019182549160200360031b1c169055386300002735565b63000027a891503d806000833e63000012d681836300002e5b565b3863000004ae565b60009260005b60071983168303811063000027d657505060031c01553880806300000439565b909360206300002802600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000027b6565b6000805b60088110630000282a575083820155600101630000041e565b949060206300002856600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002811565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c168063000028ca575b506007840160031c81015b6007830160031c8201811063000028bc575050630000040b565b6000815560010163000028a2565b60001990816007870160031c8401019182549160200360031b1c169055386300002897565b630000290a91503d806000833e63000012d681836300002e5b565b3863000003d4565b60009260005b600719831683038110630000293857505060031c0155388080630000035f565b909360206300002964600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002918565b6000805b60088110630000298c5750838201556001016300000344565b9490602063000029b8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002973565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c16806300002a2c575b506007840160031c81015b6007830160031c820181106300002a1e5750506300000331565b600081556001016300002a04565b60001990816007870160031c8401019182549160200360031b1c1690553863000029f9565b6300002a6c91503d806000833e63000012d681836300002e5b565b3863000002fa565b60009260005b6007198316830381106300002a9a57505060031c01553880806300000291565b909360206300002ac6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002a7a565b6000805b600881106300002aee5750838201556001016300000276565b949060206300002b1a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002ad5565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806300002b8e575b506007840160031c81015b6007830160031c820181106300002b805750506300000263565b600081556001016300002b66565b60001990816007870160031c8401019182549160200360031b1c169055386300002b5b565b6300002bce91503d806000833e63000012d681836300002e5b565b38630000022c565b60009260005b6007198316830381106300002bfc57505060031c015538808063000001c5565b909360206300002c28600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002bdc565b6000805b600881106300002c5057508382015560010163000001aa565b949060206300002c7c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002c37565b601c6000526020600020601c8460021b16806300002cd3575b506007840160031c81015b6007830160031c820181106300002cc55750506300000197565b600081556001016300002cab565b60001990816007870160031c8401019182549160200360031b1c169055386300002ca0565b6300002d1391503d806000833e63000012d681836300002e5b565b386300000160565b9260009360005b8181106300002d3e5750505060031c01553880808063000000f7565b90919460206300002d6b600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300002d22565b6000805b600881106300002d9457508382015560010163000000db565b949060206300002dc0600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002d7b565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b16806300002e16575b505b8181106300002e08575063000000c8565b600081556001016300002df7565b600019908183019182549160200360031b1c169055386300002df5565b6300002e4e91503d806000833e63000012d681836300002e5b565b386300000091565b600080fd5b601f909101601f19168101906001600160401b0382119082101763000012a557604052565b9060209081838203126300002e565782516001600160401b03938482116300002e56570181601f820112156300002e5657805193841163000012a5578360051b90604051946300002ed5858401876300002e5b565b855283808601928201019283116300002e56578301905b8282106300002efc575050505090565b81516001600160e01b0319811681036300002e565781529083019083016300002eec56fe60808060405260043610156200001457600080fd5b60009081803560e01c9182630a9254e4146200504557505080631e3342941462004e4a5780631ed7831c1462004dc45780632d49aa1c1462004ca257806330dd2c451462004b8c57806337bdc99b146200498f5780633e5e3c2314620049095780633f7286f414620048835780634d238c8e14620048255780635c2c2fed146200422a57806363323eb814620041f257806366d9a9a0146200413b5780637b1837de1462003e2c57806385226c811462003cf1578063871055571462003cba578063916a17c61462003c03578063951759c914620037755780639b21108014620030095780639c821dc614620028c6578063a0aaa2851462002381578063a9fb763c14620022db578063b5508aa9146200218c578063ba414fa61462002163578063c33dd9d51462001924578063c69a046914620010c9578063d8d527131462000f44578063dd7849741462000f03578063e20c9f711462000e63578063ea1c89ed14620008c5578063eb8df0521462000459578063fa7626d41462000435578063fbfb892714620003fc5763fc6c1f0214620001b057600080fd5b34620003595760403660031901126200035957620001cd620052eb565b620001d7620074e1565b90620001fd620001e7826200757f565b92600093620001f6826200639e565b526200639e565b506040516200020c816200519a565b600181526020368183013762000225602435916200639e565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f85760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003ed57620003d7575b50604051906200028e826200519a565b438252836020830152823b15620003c8576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003cc579085939291620003aa575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039f576200036b575b50803b1562000367578180916004604051809481936390c5013b60e01b83525af180156200035c5762000343578280f35b6200034f8291620051d2565b6200035957808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003909060603d811162000397575b62000387818362005257565b81019062007538565b5062000312565b503d6200037b565b6040513d85823e3d90fd5b620003b99093919293620051d2565b620003c85790839138620002d1565b8380fd5b6040513d87823e3d90fd5b620003e590939193620051d2565b91386200027e565b6040513d86823e3d90fd5b8280fd5b5034620003595760603660031901126200035957620004326200041e620052d4565b6200042862005302565b9060043562007921565b80f35b5034620003595780600319360112620003595760ff60209154166040519015158152f35b50346200035957600319606036820112620003675762000478620052eb565b6044356002811015620003c857602d54620004b060009162000499620074b7565b50603e546001600160a01b03908116911662007c01565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004eb602482018d6200562b565b03818b5afa948515620008ba57869562000880575b506001850185116200086c576001870187116200086c57600460206200052a6024358096620074d3565b9960405192838092632472942560e01b82525afa9081156200086157879162000825575b5015620007ed57806200071b5750603f546001600160a01b03169062000574906200757f565b91813b15620007175790620005b08693928a620005c06040519788968795869463018f44b760e41b86526040600487015260448601906200562b565b91848303016024850152620056b8565b03925af180156200039f57620006ff575b5090602092915b602d5462000641906200060c906001600160a01b0316620005f8620074b7565b50603e546001600160a01b03169062007c01565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b835286600484015260248301906200562b565b03915afa928315620006f35792620006b3575b5060010103620006795762000432936001620006729201146200785c565b146200789c565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006ea575b81620006d26020938362005257565b81010312620006e5575190600162000654565b600080fd5b3d9150620006c3565b604051903d90823e3d90fd5b6200070b8391620051d2565b620003675738620005d1565b8580fd5b92989796959493926001146200073b575b505060209394959650620005d8565b603f549293926001600160a01b03169062000756906200757f565b91813b15620003c85790620007938489819594620007a36040519e8f978896879563028bf0d560e11b87526060600488015260648701906200562b565b91858303016024860152620056b8565b90604483015203925af1968715620007e057602094959697620007ce575b879695949291926200072c565b620007d990620051d2565b38620007c1565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000858575b81620008436020938362005257565b81010312620008545751386200054e565b8680fd5b3d915062000834565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008b1575b816200089f6020938362005257565b81010312620007175751933862000500565b3d915062000890565b6040513d88823e3d90fd5b5034620003595760c036600319011262000359576004356001600160401b0381116200036757620008fb90369060040162005755565b62000905620052d4565b906200091062005302565b6064356001600160a01b0381168103620006e557608435906001600160a01b0382168203620006e55760a435926001600160a01b0384168403620006e557604051956200095d876200517e565b6005875260005b60a0811062000e495750604051906200097d82620051b6565b6001600160a01b031681526020810188905262000999620059a4565b6040820152620009a9876200639e565b52620009b5866200639e565b5060405190620009c582620051b6565b6001600160a01b0316815260208101879052620009e162005dd6565b6040820152620009f186620063c2565b52620009fd85620063c2565b506040519062000a0d82620051b6565b6001600160a01b031681526020810186905262000a2962005ee7565b604082015262000a3985620063d3565b5262000a4584620063d3565b506040519062000a5582620051b6565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000dd45762000b0094549181811062000d3f575b81811062000d1f575b81811062000cff575b81811062000cdf575b81811062000cbf575b81811062000c9f575b81811062000c81575b1062000c6b575b50038262005257565b604082015262000b1084620063e4565b5262000b1c83620063e4565b506040519062000b2c82620051b6565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000d5f5762000bcf94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262000bdf83620063f5565b5262000beb82620063f5565b50604051916114a4808401908482106001600160401b0383111762000c57579184939162000c1f93620099ef863962007381565b039082f08015620007e057602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000af7565b602083811b6001600160e01b03191685529093019260010162000af0565b604083901b6001600160e01b031916845260209093019260010162000ae7565b606083901b6001600160e01b031916845260209093019260010162000ade565b608083901b6001600160e01b031916845260209093019260010162000ad5565b60a083901b6001600160e01b031916845260209093019260010162000acc565b60c083901b6001600160e01b031916845260209093019260010162000ac3565b60e083901b6001600160e01b031916845260209093019260010162000aba565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000b76565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a9f565b60209062000e566200630c565b82828b0101520162000964565b50346200035957806003193601126200035957604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b8582821062000ee35750505062000ec99250038362005257565b62000edf6040519282849384528301906200547a565b0390f35b85546001600160a01b031684526001958601958895509301920162000eaf565b503462000359576020366003190112620003595762000edf62000f3362000f29620052eb565b620005f8620074b7565b916040959395519586958662005688565b50346200035957604036600319011262000359578062000f63620052eb565b6024356001600160401b0381116200108c5762000f859036906004016200541d565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620010c45760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008ba578691620010ac575b5050813b15620010a857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003ed57849162001090575b5050602d5416803b156200108c57620010668391670de0b6b3a7640000936040519485809481936330b858b160e11b83526020600484015260248301906200559e565b03925af180156200035c57620010795750f35b6200108490620051d2565b620003595780f35b5050fd5b6200109b90620051d2565b6200108c57823862001023565b8480fd5b620010b790620051d2565b620010a857843862000fdc565b505050fd5b50346200035957602036600319011262000359576004356001600160401b0381116200036757620010ff90369060040162005755565b604051613942808201908282106001600160401b038311176200191057908291620208e58339039083f09081156200035c5760405161154f808201908282106001600160401b0383111762000c57579082916201f3968339039084f080156200039f57604051610230808201908282106001600160401b03831117620018fc57908291620242278339039085f0908115620003ed5760405161069b808201908282106001600160401b03831117620018e857908291620244578339039086f08015620003cc57604051612f0f808201908282106001600160401b03831117620018d4579082916201c4878339039087f0908115620008ba57604051610884808201908282106001600160401b03831117620018c0579082916200cce18339039088f09384156200086157604051610d30808201908282106001600160401b03831117620018ac579082916200bfb18339039089f0938415620018a157620012656200632f565b97604051906200127582620051b6565b60018060a01b0316815289602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b8060078301106200182c576200131894549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001328896200639e565b5262001334886200639e565b50604051906200134482620051b6565b6001600160a01b031681526020810189905262001360620059a4565b60408201526200137088620063c2565b526200137c87620063c2565b50604051906200138c82620051b6565b60018060a01b0316815287602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b806007830110620017b7576200142f94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200143f87620063d3565b526200144b86620063d3565b50604051906200145b82620051b6565b60018060a01b0316815286602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b8060078301106200174257620014fe94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200150e86620063e4565b526200151a85620063e4565b50604051906200152a82620051b6565b60018060a01b0316815285602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b806007830110620016cd57620015cd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b6040820152620015dd85620063f5565b52620015e984620063f5565b5060405190620015f982620051b6565b6001600160a01b03168152602081018590526200161562005bb4565b6040820152620016258462006406565b52620016318362006406565b50604051906200164182620051b6565b6001600160a01b03168152602081018490526200165d62005cc5565b60408201526200166d8362006417565b52620016798262006417565b50604051916114a4808401908482106001600160401b0383111762000c575791849391620016ad93620099ef863962007381565b039082f08015620007e0576040516001600160a01b039091168152602090f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001574565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620014a5565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620013d6565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620012bf565b6040513d8a823e3d90fd5b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b503462000359576003196020368201126200036757600435906001600160401b038211620003f85760a090823603011262000367576040519060a082018281106001600160401b038211176200214d57604052620019858160040162005319565b8252620019956024820162005319565b6020830152620019a86044820162005319565b604083015260648101356001600160401b038111620003c857620019d39060043691840101620056dd565b60608301526084810135906001600160401b038211620003c8576004620019fe9236920101620056dd565b6080820152604051908160a08101106001600160401b0360a0840111176200214d5760a082016040526004825260005b6080811062002133575060405180610d308101106001600160401b03610d30830111176200211f57610d306200bfb1823980610d308101039084f080156200039f57604051806108848101106001600160401b036108848301111762001910576108846200cce18239806108848101039085f0908115620003ed5760405180611ec58101106001600160401b03611ec58301111762000c5757611ec562024af2823980611ec58101039086f0908115620003cc5760405180610b3d8101106001600160401b03610b3d83011117620018fc57610b3d620269b7823980610b3d8101039087f0928315620008ba576040519062001b2a82620051b6565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620020a95762001bcd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001bdd866200639e565b5262001be9856200639e565b506040519062001bf982620051b6565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620020335762001c9c94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001cac85620063c2565b5262001cb884620063c2565b506040519062001cc882620051b6565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b80600783011062001fbd5762001d6b94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001d7b84620063d3565b5262001d8783620063d3565b506040519062001d9782620051b6565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001f475762001e3a94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001e4a83620063e4565b5262001e5682620063e4565b506040519161111e90818401918483106001600160401b0384111762000c57579162001e9885949262001f00946200ae9387396040835260408301906200644c565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001eee606084015160a0606085015260a0840190620054b9565b920151906080818403910152620054b9565b039082f08015620007e05760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001de1565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001d12565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001c43565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001b74565b634e487b7160e01b84526041600452602484fd5b602090620021406200630c565b8282860101520162001a2e565b634e487b7160e01b600052604160045260246000fd5b50346200035957806003193601126200035957602062002182620058a5565b6040519015158152f35b50346200035957806003193601126200035957601054620021ad81620052bc565b90620021bd604051928362005257565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062002205576040518062000edf8882620055c5565b604051849188549160019280841c908481168015620022d0575b8783108114620022bc57828452879493929181156200229e575060011462002262575b506200225381600196038262005257565b815201970192019195620021ed565b8b8952838920955088905b8082106200228657508101830194506200225362002242565b8654838301860152958501958794909101906200226d565b60ff19168584015250151560051b8101830194506200225362002242565b634e487b7160e01b8a52602260045260248afd5b91607f16916200221f565b50346200035957602036600319011262000359578080604051620022ff816200519a565b601c81527f726577617264206d6574686f642063616c6c656420776974682025640000000060208201526040516200236d816200235660208201946309710a9d60e41b86526040602484015260648301906200559e565b600435604483015203601f19810183528262005257565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003595760c036600319011262000359576200239f620052eb565b6024908135916001831015620003c857620023b962005279565b91620023c462005290565b92620023cf620053e1565b60405192620023de846200521f565b6000845260405193620023f1856200519a565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620028b157908291620208e5833903906000f09889156200287c5760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f80820190828210898311176200289c579082916201f396833903906000f080156200287c578a168b602f541617602f5560405161023080820190828210898311176200289c5790829162024227833903906000f080156200287c578a168b6031541617603155604051612f0f80820190828210898311176200289c579082916201c487833903906000f080156200287c578a168b603254161760325560405161069b80820190828210898311176200289c5790829162024457833903906000f080156200287c578a168b6030541617603055604051610d3080820190828210898311176200289c579082916200bfb1833903906000f080156200287c578a168b603354161760335560405161088480820190828210898311176200289c579082916200cce1833903906000f09384156200287c576200277497620027ac889485938f8f908160ff9b1680916034541617603455620025b46200632f565b9d8e83602d541660405190620025ca82620051b6565b8152600086820152620025dc62005dd6565b6040820152620025ec826200639e565b52620025f8816200639e565b5083602f5416604051906200260d82620051b6565b81526000868201526200261f620059a4565b60408201526200262f82620063c2565b526200263b81620063c2565b508360315416604051906200265082620051b6565b81526000868201526200266262005ee7565b60408201526200267282620063d3565b526200267e81620063d3565b508360305416604051906200269382620051b6565b8152600086820152620026a562005ff8565b6040820152620026b582620063e4565b52620026c181620063e4565b50836032541660405190620026d682620051b6565b8152600086820152620026e862006109565b6040820152620026f882620063f5565b526200270481620063f5565b508360335416604051906200271982620051b6565b81526000868201526200272b62005bb4565b60408201526200273b8262006406565b52620027478162006406565b50604051926200275784620051b6565b83526000858401526200276962005cc5565b604084015262006417565b52620027808d62006417565b506200278b62007484565b9a6040519e8f6200279c81620051e6565b5216908d015260408c0162007477565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a4908186019286841090841117620028885750918493916200281d93620099ef863962007381565b03906000f080156200287c5716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035957806003193601126200035957604051620028e7816200523b565b6003815260005b6060811062002fef575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039f57839062002fb0575b6200294d91506200757f565b62002958876200639e565b5262002964866200639e565b5060405183815260c8600482015284818381895afa80156200039f57839062002f71575b6200299491506200757f565b6200299f87620063c2565b52620029ab86620063c2565b506040519280845261012c93846004820152858184818a5afa8015620003ed57849062002f32575b620029df91506200757f565b620029ea88620063d3565b52620029f687620063d3565b506040519562002a06876200523b565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008ba57869462002ef3575b5062002a43896200639e565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200086157879162002eb6575b508462002a818b620063c2565b9116905260405181815287600482015288818781875afa9081156200086157879162002e79575b508462002ab58b620063d3565b911690526040519062002ac8826200523b565b600382528b368a8401376040519080825283600483015289828881885afa918215620018a157889262002e3a575b50843b1562002d795760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562002dd657908a9162002e22575b505060405182815260c860048201528b818a818a5afa90811562002dd6578a9162002de5575b50863b1562002de15787604051918583521660048201528a898201528981604481838b5af1801562002dd657908a9162002dba575b5050604051918252600482015289818881885afa908115620018a157889162002d7d575b50843b1562002d795785906040519283521660048201528786820152868160448183885af18015620008615790879162002d61575b5050808262002bff62002c13936200639e565b528262002c0c82620063c2565b52620063d3565b526040519262002c23846200519a565b4384528487850152813b15620010a85760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003ed57918493918a9362002d41575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035c5762002d20575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062002ceb57888803868a0152888062000edf8a8a6200547a565b9193975091848062002d0b83979899605f198d82030186528b51620056b8565b99019201920188979695949293919362002cce565b62002d3a90873d8911620003975762000387818362005257565b5062002ca5565b62002d51919350939193620051d2565b620003f857829188913862002c68565b62002d6c90620051d2565b6200071757853862002bec565b8780fd5b90508981813d831162002db2575b62002d97818362005257565b8101031262002d795762002dab9062007523565b3862002bb7565b503d62002d8b565b62002dc590620051d2565b62002dd257883862002b93565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162002e1a575b62002dff818362005257565b8101031262002de15762002e139062007523565b3862002b5e565b503d62002df3565b62002e2d90620051d2565b62002dd257883862002b38565b9091508981813d831162002e71575b62002e55818362005257565b8101031262002d795762002e699062007523565b903862002af6565b503d62002e49565b90508881813d831162002eae575b62002e93818362005257565b81010312620008545762002ea79062007523565b3862002aa8565b503d62002e87565b90508881813d831162002eeb575b62002ed0818362005257565b81010312620008545762002ee49062007523565b3862002a74565b503d62002ec4565b9093508781813d831162002f2a575b62002f0e818362005257565b81010312620007175762002f229062007523565b923862002a37565b503d62002f02565b508581813d831162002f69575b62002f4b818362005257565b81010312620003c85762002f63620029df9162007523565b620029d3565b503d62002f3f565b508481813d831162002fa8575b62002f8a818362005257565b81010312620003f85762002fa2620029949162007523565b62002988565b503d62002f7e565b508481813d831162002fe7575b62002fc9818362005257565b81010312620003f85762002fe16200294d9162007523565b62002941565b503d62002fbd565b60209062002ffc620074b7565b82828501015201620028ee565b503462000359576040366003190112620003595762003027620052eb565b62003031620052d4565b603e546001600160a01b031690813b15620006e557604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003ed5762003759575b506200308b6004918362007c01565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039f57839262003731575b506020620030f191604051809381926390ba52cf60e01b835284600484015260248301906200562b565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f578684918293620036f2575b5060405163aa5106cb60e01b81529293839182916200314191906004840162007738565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f5762003195916020918591620036d4575b50604051809381926390ba52cf60e01b835284600484015260248301906200562b565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f357926200369a575b50036200362357620031eb620031f292620031e4670de0b6b3a764000060049714620078e1565b156200785c565b156200789c565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e0576200324a9385918391620035df575b5060405163aa5106cb60e01b815294859283926004840162007738565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620035fd575b5062003282600492936200757f565b6040519362003291856200519a565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e057620032ef9383918391620035df575060405163aa5106cb60e01b815294859283926004840162007738565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620035b1575b5062003324906200757f565b6040519162003333836200519a565b825260208201526040519062003349826200521f565b838252604051926200335b8462005203565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200339f866200519a565b855285602086015260405192620033b6846200519a565b600194858552875b602081106200354a57505050505082620033d8826200639e565b52620033e4816200639e565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003675760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035c5762003532575b50506042546001600160a01b031690813b15620010a85791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620034fb5750505050508383809203925af180156200039f57620034e3575b602082604051620034d881620034c9858201948686526040830190620077bd565b03601f19810183528262005257565b519020604051908152f35b620034ef8391620051d2565b620003675781620034a8565b92959750929550926020806200351d87936043198c82030186528951620077bd565b970192019201928795938a9795929362003486565b6200353d90620051d2565b620003c857833862003435565b6020906040516200355b816200519a565b604051620035698162005203565b6200357362007762565b81526200357f62007762565b848201528b60408201528b888201528b8682015287878201528b8582015281528a8382015282828901015201620033be565b62003324919250620035d7903d8087833e620035ce818362005257565b8101906200770f565b919062003318565b620035f691503d8085833e620035ce818362005257565b386200322d565b600492506200361b62003282913d8088833e620035ce818362005257565b925062003273565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620036cb575b81620036b96020938362005257565b81010312620006e557519038620031bd565b3d9150620036aa565b620036eb91503d8087833e620035ce818362005257565b3862003172565b925050506020813d60201162003728575b81620037126020938362005257565b81010312620006e557518286620031416200311d565b3d915062003703565b620030f1919250620037506020913d8087833e620035ce818362005257565b929150620030c7565b600491936200376c6200308b92620051d2565b9391506200307c565b50346200035957602080600319360112620003675762003794620052eb565b91604051614ffa908181016001600160401b0392828210848311176200191057908291620274f48339039083f09081156200035c5760405161154f808201908282108483111762000c57579082916201f3968339039084f09485156200039f57604051906200380382620051b6565b600282528560005b6040811062003bea575050604051966200382588620051b6565b6001600160a01b039485168852868801869052604051602980548083526000918252828a019a9291907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b81600784011062003b74579a809c620038e293859362003a029b9c9d9e54918482821062003b55575b82821062003b36575b82821062003b17575b82821062003af8575b82821062003ad9575b82821062003aba575b82821062003a9d575b501062003a87575b509050038262005257565b6040820152620038f2846200639e565b52620038fe836200639e565b5085604051916200390f83620051b6565b168152868882015262003921620059a4565b60408201526200393183620063c2565b526200393d82620063c2565b506040516200394c81620051e6565b62003956620074b7565b815286888201528660408201528660608201528660808201528660a08201528660c08201528660e0820152866101008181840152600c61012083818601526402540be4006101409385858801528d600060405191620039b5836200519a565b818352820152610160809801528d8c620039ce62007484565b99604051620039dd816200521f565b89815260405190620039ef826200519a565b607b8252848201526040519d8e620051e6565b8d5216908b01528560408b0152670de0b6b3a764000060608b0152600160808b0152600a60a08b0152604660c08b0152606460e08b0152890152870152850152830152604051926114a48085019185831090831117620018fc579184939162003a7193620099ef863962007381565b039083f0918215620006f3575060405191168152f35b6001600160e01b03191681528d910138620038d7565b83811b6001600160e01b03191685529093019260010184620038cf565b604084901b6001600160e01b03191685529093019260010184620038c6565b606084901b6001600160e01b03191685529093019260010184620038bd565b608084901b6001600160e01b03191685529093019260010184620038b4565b60a084901b6001600160e01b03191685529093019260010184620038ab565b60c084901b6001600160e01b03191685529093019260010184620038a2565b60e084901b6001600160e01b0319168552909301926001018462003899565b91816008600160079f8f9061010091885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019201939d505062003870565b62003bf46200630c565b8282860101520186906200380b565b5034620003595780600319360112620003595760135462003c2481620052bc565b9062003c34604051928362005257565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062003c7b576040518062000edf8782620054f9565b60028260019260405162003c8f816200519a565b848060a01b038a5416815262003ca7858b016200621a565b8382015281520196019201919462003c63565b503462000359576040366003190112620003595762000edf62000f3362003ce0620052eb565b62003cea620052d4565b9062007c01565b5034620003595780600319360112620003595760115462003d1281620052bc565b9062003d22604051928362005257565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062003d6a576040518062000edf8882620055c5565b604051849188549160019280841c90848116801562003e21575b8783108114620022bc578284528794939291811562003e03575060011462003dc7575b5062003db881600196038262005257565b81520197019201919562003d52565b8b8952838920955088905b80821062003deb575081018301945062003db862003da7565b86548383018601529585019587949091019062003dd2565b60ff19168584015250151560051b81018301945062003db862003da7565b91607f169162003d84565b5034620003595760031990604036830112620003595762003e4c620052eb565b60249283359160018060a01b0362003eb362003e7d82602d541662003e70620074b7565b5083603e54169062007c01565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a6200562b565b03915afa9586156200287c5760009662004106575b5060018601809611620040f15760018901809911620040f1578662003ef084600493620074d3565b9b60405192838092632472942560e01b82525afa9081156200287c57600091620040be575b5015620040875762003f2c87603f5416946200757f565b93803b15620006e55762003f77946000938e6040519788958694859363018f44b760e41b85526040600486015262003f68604486018c6200562b565b928584030190850152620056b8565b03925af19081156200287c578a9762003fda93869362004075575b5062003fb387602d541662003fa6620074b7565b5088603e54169062007c01565b9c93505098905060405416916040519586948593849384528760048501528301906200562b565b03915afa9081156200287c5760009162004042575b50036200400a5750620004329392916200067291146200785c565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200406d575b6200405b818362005257565b81010312620003595750513862003fef565b503d6200404f565b6200408090620051d2565b3862003f92565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d8311620040e9575b620040d7818362005257565b81010312620003595750513862003f15565b503d620040cb565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162004133575b62004120818362005257565b8101031262000359575051943862003ec8565b503d62004114565b503462000359578060031936011262000359576012546200415c81620052bc565b906200416c604051928362005257565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b838310620041b3576040518062000edf8782620054f9565b600282600192604051620041c7816200519a565b848060a01b038a54168152620041df858b016200621a565b838201528152019601920191946200419b565b50346200035957604036600319011262000359576200043262004214620052d4565b603e546001600160a01b03169060043562007921565b50346200035957610100366003190112620003595762004249620052eb565b6001602435101562000367576200425f62005279565b6200426962005290565b9162004274620053e1565b91600360c4351015620010a85760e43561ffff81168103620006e557604051946200429f866200521f565b6000865260405195620042b2876200519a565b607b875260208701526040516139428082018281106001600160401b038211176200214d578291620208e5833903906000f080156200287c5760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b038211176200214d5782916201f396833903906000f080156200287c5760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b038211176200214d57829162024227833903906000f080156200287c5760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b038211176200214d5782916201c487833903906000f080156200287c5760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b038211176200214d57829162024457833903906000f080156200287c5760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b038211176200214d5782916200bfb1833903906000f080156200287c5760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b038211176200214d5782916200cce1833903906000f09485156200287c57603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620044e56200632f565b602d54604051919b91906001600160a01b03166200450382620051b6565b8152600060208201526200451662005dd6565b6040820152620045268c6200639e565b52620045328b6200639e565b50602f54604051906001600160a01b03166200454e82620051b6565b81526000602082015262004561620059a4565b6040820152620045718c620063c2565b526200457d8b620063c2565b50603154604051906001600160a01b03166200459982620051b6565b815260006020820152620045ac62005ee7565b6040820152620045bc8c620063d3565b52620045c88b620063d3565b50603054604051906001600160a01b0316620045e482620051b6565b815260006020820152620045f762005ff8565b6040820152620046078c620063e4565b52620046138b620063e4565b50603254604051906001600160a01b03166200462f82620051b6565b8152600060208201526200464262006109565b6040820152620046528c620063f5565b526200465e8b620063f5565b50603354604051906001600160a01b03166200467a82620051b6565b8152600060208201526200468d62005bb4565b60408201526200469d8c62006406565b52620046a98b62006406565b5060405190620046b982620051b6565b6001600160a01b0316815260006020820152620046d562005cc5565b6040820152620046e58b62006417565b52620046f18a62006417565b50620046fc62007484565b986040519b6200470c8d620051e6565b8c526001600160a01b031660208c01526200472d60243560408d0162007477565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200476e60c4356200637d565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200214d578493620047af93620099ef863962007381565b03906000f080156200287c57602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b503462000359576020366003190112620003595762004843620052eb565b6200484d620074e1565b906200485d620001e7826200757f565b5060646200022560405162004872816200519a565b60018152602036818301376200639e565b50346200035957806003193601126200035957604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620048e95750505062000ec99250038362005257565b85546001600160a01b0316845260019586019588955093019201620048cf565b50346200035957806003193601126200035957604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200496f5750505062000ec99250038362005257565b85546001600160a01b031684526001958601958895509301920162004955565b503462000359576020806003193601126200036757604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003cc57859262004b4d575b5060016001600160401b03809316019082821162004b375780603f5416908662004a06336200757f565b92803b15620003675762004a399382916040518080978194636b2c1eef60e01b83528d60048401526024830190620056b8565b0391600435905af1928315620007e057879362004b1a575b5050604054169360046040518096819382525afa928315620003cc57859362004ada575b50811691160362004a84575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004b12575b62004af5818362005257565b81010312620010a85762004b0a829162007647565b929062004a75565b503d62004ae9565b62004b2891929350620051d2565b62000717578490863862004a51565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162004b84575b62004b68818362005257565b81010312620010a85762004b7c9062007647565b9038620049dc565b503d62004b5c565b503462000359576020806003193601126200036757600435916001600160401b0391828411620003675736602385011215620003675783600401359062004bd382620052bc565b9162004be3604051938462005257565b8083528183019560249687600593841b83010191368311620008545788859101915b83831062004c9157505050508384905b868216600381101562004c87578551111562004c725762004c4b879185681fffffffffffffffe085871b168801015190620074d3565b911686811462004c5f576001019062004c15565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162004c05565b503462000359576040366003190112620003595760043562004cc3620052d4565b80319062004cd0620074b7565b50603e546001600160a01b03929062004cec9084168362007c01565b50505092905083603f541686813b15620003595786916004604051809481936316989f6f60e21b83525af18015620008615762004dab575b508062004d4391319462004d37620074b7565b50603e54169062007c01565b5050509390508482039182116200086c570362004d7157620004329262004d6a91620074d3565b14620078e1565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562004dbc62004d439297620051d2565b959062004d24565b50346200035957806003193601126200035957604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062004e2a5750505062000ec99250038362005257565b85546001600160a01b031684526001958601958895509301920162004e10565b5034620003595760031960203682011262000367576001600160401b0360043511620003675760c0906004353603011262000359576040519062004e8e826200517e565b600435600401356001600160401b038111620003675762004eb79060043691813501016200532e565b8252600435602481013560208401526044810135604084015262004ede90606401620053f2565b6060830152608460043501356001600160401b038111620003675736602382600435010112156200036757600481813501013562004f1c81620052bc565b9262004f2c604051948562005257565b81845260208401923660248460051b836004350101011162000367576024816004350101935b60248460051b83600435010101851062004fa057602062004f8e8888608082015262004f8360a4600435016200546a565b60a0820152620064d3565b6040516001600160a01b039091168152f35b84356001600160401b038111620003c85760606004358401820136036023190112620003c8576040519062004fd582620051b6565b600435840181016024810135835262004ff19060440162005319565b60208301526001600160401b03606482866004350101013511620010a85760249260209283926200503290369060043589010160648101350187016200541d565b6040820152815201950194905062004f52565b8190346200517b57816003193601126200517b57806200506760a0926200517e565b62005071620074b7565b81528260208201528260408201528260608201526060608082015201526040516200509c816200519a565b6001815260203681830137600a620050b4826200639e565b5260405190620050c4826200519a565b607b82526020820152604051620050db816200521f565b82815260405191620050ed836200517e565b8252600a60208301526402540be4006040830152604660608301526080820152606460a08201526001600160a01b03906200512890620064d3565b166001600160601b0360a01b8181603e541617603e55818160405416176040558181603f541617603f55818160425416176042558181604554161760455581816047541617604755604654161760465580f35b50fd5b60c081019081106001600160401b038211176200214d57604052565b604081019081106001600160401b038211176200214d57604052565b606081019081106001600160401b038211176200214d57604052565b6001600160401b0381116200214d57604052565b61018081019081106001600160401b038211176200214d57604052565b60e081019081106001600160401b038211176200214d57604052565b602081019081106001600160401b038211176200214d57604052565b608081019081106001600160401b038211176200214d57604052565b90601f801991011681019081106001600160401b038211176200214d57604052565b606435906001600160401b0382168203620006e557565b608435906001600160401b0382168203620006e557565b35906001600160401b0382168203620006e557565b6001600160401b0381116200214d5760051b60200190565b602435906001600160a01b0382168203620006e557565b600435906001600160a01b0382168203620006e557565b604435906001600160a01b0382168203620006e557565b35906001600160a01b0382168203620006e557565b9190604083820312620006e557604051926200534a846200519a565b836200535682620052a7565b815260209182810135906001600160401b038211620006e557019280601f85011215620006e55783356200538a81620052bc565b946200539a604051968762005257565b818652848087019260051b820101928311620006e55784809101915b838310620053c657505050500152565b8190620053d38462005319565b8152019101908490620053b6565b60a4359060ff82168203620006e557565b359060ff82168203620006e557565b6001600160401b0381116200214d57601f01601f191660200190565b81601f82011215620006e557803590620054378262005401565b9262005447604051948562005257565b82845260208383010111620006e557816000926020809301838601378301015290565b359061ffff82168203620006e557565b90815180825260208080930193019160005b8281106200549b575050505090565b83516001600160a01b0316855293810193928101926001016200548c565b90815180825260208080930193019160005b828110620054da575050505090565b83516001600160e01b03191685529381019392810192600101620054cb565b602080820190808352835180925260409283810182858560051b8401019601946000925b8584106200552f575050505050505090565b90919293949596858062005567600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620054b9565b9901940194019295949391906200551d565b60005b8381106200558d5750506000910152565b81810151838201526020016200557c565b90602091620055b98151809281855285808601910162005579565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620055fa5750505050505090565b90919293949584806200561a600193603f198682030187528a516200559e565b9801930193019194939290620055e9565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106200566a575050505090565b83516001600160a01b0316855293810193928101926001016200565b565b919594939092620056a460809460a0855260a08501906200562b565b966020840152604083015260608201520152565b9060406020620056da9360ff815116845201519181602082015201906200559e565b90565b81601f82011215620006e557803591620056f783620052bc565b9262005707604051948562005257565b808452602092838086019260051b820101928311620006e5578301905b82821062005733575050505090565b81356001600160e01b031981168103620006e557815290830190830162005724565b9190918083036101a08112620006e5576040516200577381620051e6565b80948335906001600160401b038211620006e557620057949185016200532e565b8152620057a46020840162005319565b602082015260408301356001811015620006e557604082015260608301356060820152620057d560808401620052a7565b6080820152620057e860a08401620052a7565b60a0820152620057fb60c08401620053f2565b60c08201526200580e60e084016200546a565b60e08201526101008084013590820152610120918284013560009381850b8203620010a85783015261014080850135906003821015620010a857830152604061015f199091011262000367576040519262005869846200519a565b610160928382013590600282101562000359575084526200588e906101800162005319565b60208401520152565b51908115158203620006e557565b6000805460081c60ff1615620058bf575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620058e157505090565b819250819060405182602082018381526519985a5b195960d21b6040840152604083526200590f83620051b6565b6200594b602460405180936200593a6020830197630667f9d760e41b89525180928585019062005579565b810103600481018452018262005257565b51925af1503d156200599b573d90620059648262005401565b9162005974604051938462005257565b82523d81602084013e5b6020828051810103126200035957506020620056da910162005897565b6060906200597e565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005b40578462005a4997549383831062005b1f575b83831062005afe575b83831062005add575b83831062005abc575b83831062005a9b575b83831062005a7d575b5082821062005a60575b501062005a4b575b509050038362005257565b565b6001600160e01b031916815201803862005a3e565b83811b6001600160e01b0319168552909301926001018462005a36565b84901b6001600160e01b031916855290930192600101843862005a2c565b606085901b6001600160e01b03191686529481019460019092019162005a23565b608085901b6001600160e01b03191686529481019460019092019162005a1a565b60a085901b6001600160e01b03191686529481019460019092019162005a11565b60c085901b6001600160e01b03191686529481019460019092019162005a08565b60e085901b6001600160e01b031916865294810194600190920191620059ff565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620059e3565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005c51578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005bf3565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005d62578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d04565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062005e73578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e15565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b81600782011062005f84578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005f26565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062006095578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006037565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b816007820110620061a6578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006148565b906040918251809382549283835260209182840191600052826000209460005b81600782011062006298578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b831690880152911690850152600190960195889550610100909301926008016200623a565b604051906200631b82620051b6565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b038211176200214d57604052600782528160005b60e0811062006363575050565b602090620063706200630c565b8282850101520162006356565b600311156200638857565b634e487b7160e01b600052602160045260246000fd5b805115620063ac5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620063ac5760400190565b805160021015620063ac5760600190565b805160031015620063ac5760800190565b805160041015620063ac5760a00190565b805160051015620063ac5760c00190565b805160061015620063ac5760e00190565b805160071015620063ac576101000190565b805160081015620063ac576101200190565b90815180825260208092019182818360051b85019501936000915b848310620064785750505050505090565b9091929394958480620064c283856001950387528a51858060a01b03815116825283810151620064a8816200637d565b8483015260408091015191606080928201520190620054b9565b980193019301919493929062006467565b906040516117848082018281106001600160401b038211176200214d57829162016ce5833903906000f080156200287c576040516116598082018281106001600160401b038211176200214d5782916201ae2e833903906000f080156200287c576040516129c58082018281106001600160401b038211176200214d57829162018469833903906000f09081156200287c57604051612a728082018281106001600160401b038211176200214d57829162014273833903906000f080156200287c576040516126e78082018281106001600160401b038211176200214d5782916200f7c6833903906000f080156200287c576040516122618082018281106001600160401b038211176200214d5782916200d565833903906000f09081156200287c576040516123c68082018281106001600160401b038211176200214d57829162011ead833903906000f09283156200287c57604051610d308082018281106001600160401b038211176200214d5782916200bfb1833903906000f09586156200287c576040516108848082018281106001600160401b038211176200214d5782916200cce1833903906000f09586156200287c57604051986101408a018a81106001600160401b038211176200214d5760405260098a5260005b610120811062007366575060405190620066c982620051b6565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620072f1576200676d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200677d8a6200639e565b5262006789896200639e565b50604051906200679982620051b6565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b8060078301106200727c576200683d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200684d8962006417565b52620068598862006417565b50604051906200686982620051b6565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062007207576200690d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200691d8862006428565b52620069298762006428565b50604051906200693982620051b6565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b8060078301106200719257620069dd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b6040820152620069ed876200643a565b52620069f9866200643a565b506040519062006a0982620051b6565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b8060078301106200711d5762006aad94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006abd86620063c2565b5262006ac985620063c2565b506040519062006ad982620051b6565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b806007830110620070a85762006b7d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006b8d85620063d3565b5262006b9984620063d3565b506040519062006ba982620051b6565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b806007830110620070335762006c4d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006c5d84620063e4565b5262006c6983620063e4565b506040519062006c7982620051b6565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006fbe5762006d1d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006d2d83620063f5565b5262006d3982620063f5565b506040519062006d4982620051b6565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006f495762006ded94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006dfd8262006406565b5262006e098162006406565b5060405190611b4d808301918383106001600160401b038411176200214d5762006e429162007ea285396040835260408301906200644c565b90602081830391015262006e60845160c0835260c08301906200562b565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006ef65750505050505060a061ffff8185969701511691015203906000f080156200287c57603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006f38600193601f198682030188528660408d5180518452878060a01b0386820151168685015201519181604082015201906200559e565b990194019401929493919062006eab565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006d94565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006cc4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006bf4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b24565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006a54565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006984565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620068b4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620067e4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006714565b808b60208093620073766200630c565b9201015201620066af565b9062007396906040835260408301906200644c565b906020818303910152620073b482516101a08084528301906200562b565b9160018060a01b038060208301511660208401526040820151600181101562006388576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b9084015261014080830151906200744c826200637d565b8401526101608092015191825192600284101562006388576101809360209286015201511691015290565b6001821015620063885752565b6000602060405162007496816200519a565b8281520152604051620074a9816200519a565b600081526000602082015290565b60405190620074c6826200519a565b6060602083600081520152565b9190820180921162004b3757565b60405190620074f0826200519a565b600182528160005b602090818110156200751e5760209162007511620074b7565b90828501015201620074f8565b505050565b51906001600160a01b0382168203620006e557565b809291039160608312620006e5576040620075538262005897565b93601f190112620006e55760408051916200756e836200519a565b602081015183520151602082015290565b6001600160401b039062007592620074b7565b506200762e6040918251906001600160601b03199060601b16602082015260148152620075bf816200519a565b6200761f835191620075d183620051b6565b600a83526fffffffffffffffffffffffffffffffff6020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a08301906200559e565b03601f19810184528362005257565b51906200763b826200519a565b60048252602082015290565b51906001600160401b0382168203620006e557565b9190604083820312620006e5576040519262007678846200519a565b83620076848262007647565b815260209182810151906001600160401b038211620006e557019280601f85011215620006e5578351620076b881620052bc565b94620076c8604051968762005257565b818652848087019260051b820101928311620006e55784809101915b838310620076f457505050500152565b8190620077018462007523565b8152019101908490620076e4565b90602082820312620006e55781516001600160401b038111620006e557620056da92016200765c565b90620077526020919493946040845260408401906200562b565b6001600160a01b03909416910152565b6040519062007771826200519a565b816200777c620074b7565b815260206200778a620074b7565b910152565b620056da916020620077ab83516040845260408401906200562b565b920151906020818403910152620056b8565b906020808351936040845260c062007849620077e7875160e060408901526101208801906200778f565b620078048589015191603f1992838a83030160608b01526200778f565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e08901526200559e565b9501516101008501520151151591015290565b156200786457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b15620078a457565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b15620078e957565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e557829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007bf75790889493929162007be0575b506200797e85918462007c01565b9b93969298919a90508554168551938480926394074b0360e01b82525afa91821562007bd657839262007bb6575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b90818452888480620079ec60209b8c809584015260248301906200562b565b0381865af493841562007bac57908691829562007b70575b50875163aa5106cb60e01b815294958591829162007a2691908d840162007738565b0381855af492831562007b66579162007a5f93918893879362007b46575b5087518095819482938352868d84015260248301906200562b565b03915af492831562007b3b579262007b06575b500362007a935750505091620031e4620031eb9262005a49959414620078e1565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d831162007b33575b62007b21818362005257565b81010312620006e55751903862007a72565b503d62007b15565b8451903d90823e3d90fd5b62007b5e9193503d8089833e620035ce818362005257565b913862007a44565b86513d87823e3d90fd5b89809296508193503d831162007ba4575b62007b8d818362005257565b81010312620006e5575192859062007a2662007a04565b503d62007b81565b87513d88823e3d90fd5b62007bce9192503d8085833e620035ce818362005257565b9038620079ac565b84513d85823e3d90fd5b9462007bf06200797e96620051d2565b9462007970565b83513d87823e3d90fd5b9062007c0c620074b7565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa91821562007e97579280929162007ca094829362007e77575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007738565b0381845af492831562007e4a57829362007e54575b5062007ce6929385541693855180926390ba52cf60e01b82528180602097889586600484015260248301906200562b565b03915af490811562007e4a57908291829162007e13575b50602486518096819363017187cd60e11b835260048301525afa92831562007e0757819362007d54575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e62007d69818362005257565b8101918382840312620003595781516001600160401b0392838211620003f857019060c082850312620003595785519462007da4866200517e565b825186528083015190860152858201518686015262007dc66060830162007647565b606086015262007dd96080830162007647565b608086015260a082015192831162000359575062007df99291016200765c565b60a082015238808062007d27565b508351903d90823e3d90fd5b809250848092503d831162007e42575b62007e2f818362005257565b8101031262000367578190513862007cfd565b503d62007e23565b85513d84823e3d90fd5b62007ce6935062007e70903d8085833e620035ce818362005257565b9262007cb5565b62007e8f9193503d8084833e620035ce818362005257565b913862007c6d565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a2646970667358221220666715ef7e14a4cce2e9eb790500afcf38c6cbb06a53aa3d39239129d34830fb64736f6c63430008130033","sourceMap":"727:1366:92:-:0;;;;;;;1594:4:2;727:1366:92;;;;1594:4:2;727:1366:92;;;1594:4:2;727:1366:92;3201:4:5;727:1366:92;;;3201:4:5;727:1366:92;;;;4355:55:91;;727:1366:92;3201:4:5;4355:55:91;;727:1366:92;;;;;;;;;;;1594:4:2;4355:15:91;727:1366:92;4355:15:91;;:55;;;;;;;1594:4:2;4355:55:91;;;-1:-1:-1;;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;4324:86:91;727:1366:92;;4324:86:91;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;4324:86:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;;;;;4457:53:91;;727:1366:92;3201:4:5;4457:53:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;1594:4:2;4355:15:91;727:1366:92;4355:15:91;;4457:53;;;;;;;1594:4:2;4457:53:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;4420:90:91;727:1366:92;;4420:90:91;727:1366:92;;;;;;;;;;;4420:90:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;4546:51:91;;727:1366:92;3201:4:5;4546:51:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;4546:51;;;;;;;1594:4:2;4546:51:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;4520:77:91;727:1366:92;;4520:77:91;727:1366:92;;;;;;;;;;;4520:77:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;4633:53:91;;727:1366:92;3201:4:5;4633:53:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;4633:53;;;;;;;1594:4:2;4633:53:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;4607:79:91;727:1366:92;;4607:79:91;727:1366:92;;;;;;;;;;;4607:79:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7019:58:91;;727:1366:92;3201:4:5;7019:58:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7019:58;;;;;;;1594:4:2;7019:58:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7108:59:91;;727:1366:92;3201:4:5;7108:59:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7108:59;;;;;;;1594:4:2;7108:59:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7087:80:91;727:1366:92;;7087:80:91;727:1366:92;;;;;;;;;;;7087:80:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7197:57:91;;727:1366:92;3201:4:5;7197:57:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7197:57;;;;;;;1594:4:2;7197:57:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7177:77:91;727:1366:92;;7177:77:91;727:1366:92;;;;;;;;;;;7177:77:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7286:58:91;;727:1366:92;3201:4:5;7286:58:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7286:58;;;;;;;1594:4:2;7286:58:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7264:80:91;727:1366:92;;7264:80:91;727:1366:92;;;;;;;;;;;7264:80:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7380:65:91;;727:1366:92;3201:4:5;7380:65:91;;727:1366:92;4520:77:91;727:1366:92;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7380:65;;;;;;;1594:4:2;7380:65:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7354:91:91;727:1366:92;;7354:91:91;727:1366:92;;;;;;;;;;;7354:91:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7482:51:91;;727:1366:92;3201:4:5;7482:51:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7482:51;;;;;;;1594:4:2;7482:51:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7455:78:91;727:1366:92;;7455:78:91;727:1366:92;;;;;;;;;;;7455:78:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7563:51:91;;727:1366:92;3201:4:5;7563:51:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7563:51;;;;;;;1594:4:2;7563:51:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7543:71:91;727:1366:92;;7543:71:91;727:1366:92;;;;;;;;;;;7543:71:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;7644:53:91;;727:1366:92;3201:4:5;7644:53:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;7644:53;;;;;;;1594:4:2;7644:53:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;7624:73:91;727:1366:92;;7624:73:91;727:1366:92;;;;;;;;;;;7624:73:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;5541:54:91;;727:1366:92;3201:4:5;5541:54:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;5541:54;;;;;;;1594:4:2;5541:54:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;5509:86:91;727:1366:92;;5509:86:91;727:1366:92;;;;;;;;;;;5509:86:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;5637:54:91;;727:1366:92;3201:4:5;5637:54:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;5637:54;;;;;;;1594:4:2;5637:54:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;5605:86:91;727:1366:92;;5605:86:91;727:1366:92;;;;;;;;;;;5605:86:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;5735:56:91;;727:1366:92;3201:4:5;5735:56:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;5735:56;;;;;;;1594:4:2;5735:56:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;5701:90:91;727:1366:92;;5701:90:91;727:1366:92;;;;;;;;;;;5701:90:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;5834:55:91;;727:1366:92;3201:4:5;5834:55:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;5834:55;;;;;;;1594:4:2;5834:55:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;5801:88:91;727:1366:92;;5801:88:91;727:1366:92;;;;;;;;;;;5801:88:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;5920:54:91;;727:1366:92;3201:4:5;5920:54:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;5920:54;;;;;;;1594:4:2;5920:54:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;5900:74:91;727:1366:92;;5900:74:91;727:1366:92;;;;;;;;;;;5900:74:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;6005:55:91;;727:1366:92;3201:4:5;6005:55:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;6005:55;;;;;;;1594:4:2;6005:55:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;5984:76:91;727:1366:92;;5984:76:91;727:1366:92;;;;;;;;;;;5984:76:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;6093:57:91;;727:1366:92;3201:4:5;6093:57:91;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;4355:15:91;6093:57;;;;;;;1594:4:2;6093:57:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;6070:80:91;727:1366:92;;6070:80:91;727:1366:92;;;;;;;;;;;6070:80:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;6180:51:91;;727:1366:92;3201:4:5;6180:51:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;;;727:1366:92;;;4355:15:91;6180:51;;;;;;;1594:4:2;6180:51:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;6160:71:91;727:1366:92;;6160:71:91;727:1366:92;;;;;;;;;;;6160:71:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;-1:-1:-1;;727:1366:92;;-1:-1:-1;;;6260:53:91;;727:1366:92;3201:4:5;6260:53:91;;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;-1:-1:-1;;;;727:1366:92;;;4355:15:91;6260:53;;;;;;;1594:4:2;6260:53:91;;;727:1366:92;-1:-1:-1;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;6241:72:91;727:1366:92;;6241:72:91;727:1366:92;;;;;;;;;;;6241:72:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;1594:4:2;727:1366:92;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6241:72:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;3201:4:5;727:1366:92;;1594:4:2;727:1366:92;6260:53:91;;;;;;1594:4:2;6260:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;727:1366:92;;;1594:4:2;727:1366:92;;;;;;;1594:4:2;727:1366:92;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:71:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:51:91;;;;;;1594:4:2;6180:51:91;;;;;;:::i;:::-;;;;727:1366:92;;1594:4:2;727:1366:92;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6070:80:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:57:91;;;;;;1594:4:2;6093:57:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:76:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:55:91;;;;;;1594:4:2;6005:55:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:74:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5920:54:91;;;;;;1594:4:2;5920:54:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:88:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:55:91;;;;;;1594:4:2;5834:55:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5701:90:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:56:91;;;;;;1594:4:2;5735:56:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:86:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5637:54:91;;;;;;1594:4:2;5637:54:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5509:86:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:54:91;;;;;;1594:4:2;5541:54:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:73:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7644:53:91;;;;;;1594:4:2;7644:53:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7543:71:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7563:51:91;;;;;;1594:4:2;7563:51:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7455:78:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7482:51:91;;;;;;1594:4:2;7482:51:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7354:91:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:65:91;;;;;;1594:4:2;7380:65:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:80:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:58:91;;;;;;1594:4:2;7286:58:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7177:77:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7197:57:91;;;;;;1594:4:2;7197:57:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:80:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7108:59:91;;;;;;1594:4:2;7108:59:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7019:58:91;;;;;;1594:4:2;7019:58:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:79:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:53:91;;;;;;1594:4:2;4633:53:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4520:77:91;1594:4:2;727:1366:92;;;;;;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4546:51:91;;;;;;1594:4:2;4546:51:91;;;;;;:::i;:::-;;;;727:1366:92;1594:4:2;727:1366:92;1594:4:2;727:1366:92;-1:-1:-1;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4420:90:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;4420:90:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:53:91;;;;;;1594:4:2;4457:53:91;;;;;;:::i;:::-;;;;727:1366:92;;1594:4:2;727:1366:92;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;;;;1594:4:2;727:1366:92;;;;;;;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:86:91;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;727:1366:92;;1594:4:2;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;4355:55:91;;;;;;1594:4:2;4355:55:91;;;;;;:::i;:::-;;;;727:1366:92;;;;;;;;;-1:-1:-1;;727:1366:92;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":104584,"length":20},{"start":110503,"length":20},{"start":115017,"length":20},{"start":122368,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":76904,"length":20},{"start":79085,"length":20},{"start":79659,"length":20},{"start":103461,"length":20},{"start":125372,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":68114,"length":20},{"start":68885,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":160777,"length":20},{"start":173414,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":89122,"length":20},{"start":103099,"length":20},{"start":124874,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":24598,"length":20},{"start":24678,"length":20},{"start":24762,"length":20},{"start":24943,"length":20},{"start":25108,"length":20},{"start":43216,"length":20},{"start":43934,"length":20},{"start":52916,"length":20},{"start":67783,"length":20},{"start":75133,"length":20},{"start":75721,"length":20},{"start":76594,"length":20},{"start":78652,"length":20},{"start":78939,"length":20},{"start":79489,"length":20},{"start":82539,"length":20},{"start":84938,"length":20},{"start":85035,"length":20},{"start":86130,"length":20},{"start":88791,"length":20},{"start":88893,"length":20},{"start":89223,"length":20},{"start":89308,"length":20},{"start":89409,"length":20},{"start":89494,"length":20},{"start":90981,"length":20},{"start":91059,"length":20},{"start":91164,"length":20},{"start":91320,"length":20},{"start":91870,"length":20},{"start":92111,"length":20},{"start":92192,"length":20},{"start":97665,"length":20},{"start":102168,"length":20},{"start":102844,"length":20},{"start":108439,"length":20},{"start":108658,"length":20},{"start":108738,"length":20},{"start":108919,"length":20},{"start":109100,"length":20},{"start":122550,"length":20},{"start":124610,"length":20},{"start":144553,"length":20},{"start":166307,"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":"0x60808060405260043610156200001457600080fd5b60009081803560e01c9182630a9254e4146200504557505080631e3342941462004e4a5780631ed7831c1462004dc45780632d49aa1c1462004ca257806330dd2c451462004b8c57806337bdc99b146200498f5780633e5e3c2314620049095780633f7286f414620048835780634d238c8e14620048255780635c2c2fed146200422a57806363323eb814620041f257806366d9a9a0146200413b5780637b1837de1462003e2c57806385226c811462003cf1578063871055571462003cba578063916a17c61462003c03578063951759c914620037755780639b21108014620030095780639c821dc614620028c6578063a0aaa2851462002381578063a9fb763c14620022db578063b5508aa9146200218c578063ba414fa61462002163578063c33dd9d51462001924578063c69a046914620010c9578063d8d527131462000f44578063dd7849741462000f03578063e20c9f711462000e63578063ea1c89ed14620008c5578063eb8df0521462000459578063fa7626d41462000435578063fbfb892714620003fc5763fc6c1f0214620001b057600080fd5b34620003595760403660031901126200035957620001cd620052eb565b620001d7620074e1565b90620001fd620001e7826200757f565b92600093620001f6826200639e565b526200639e565b506040516200020c816200519a565b600181526020368183013762000225602435916200639e565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f85760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003ed57620003d7575b50604051906200028e826200519a565b438252836020830152823b15620003c8576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003cc579085939291620003aa575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039f576200036b575b50803b1562000367578180916004604051809481936390c5013b60e01b83525af180156200035c5762000343578280f35b6200034f8291620051d2565b6200035957808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003909060603d811162000397575b62000387818362005257565b81019062007538565b5062000312565b503d6200037b565b6040513d85823e3d90fd5b620003b99093919293620051d2565b620003c85790839138620002d1565b8380fd5b6040513d87823e3d90fd5b620003e590939193620051d2565b91386200027e565b6040513d86823e3d90fd5b8280fd5b5034620003595760603660031901126200035957620004326200041e620052d4565b6200042862005302565b9060043562007921565b80f35b5034620003595780600319360112620003595760ff60209154166040519015158152f35b50346200035957600319606036820112620003675762000478620052eb565b6044356002811015620003c857602d54620004b060009162000499620074b7565b50603e546001600160a01b03908116911662007c01565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004eb602482018d6200562b565b03818b5afa948515620008ba57869562000880575b506001850185116200086c576001870187116200086c57600460206200052a6024358096620074d3565b9960405192838092632472942560e01b82525afa9081156200086157879162000825575b5015620007ed57806200071b5750603f546001600160a01b03169062000574906200757f565b91813b15620007175790620005b08693928a620005c06040519788968795869463018f44b760e41b86526040600487015260448601906200562b565b91848303016024850152620056b8565b03925af180156200039f57620006ff575b5090602092915b602d5462000641906200060c906001600160a01b0316620005f8620074b7565b50603e546001600160a01b03169062007c01565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b835286600484015260248301906200562b565b03915afa928315620006f35792620006b3575b5060010103620006795762000432936001620006729201146200785c565b146200789c565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006ea575b81620006d26020938362005257565b81010312620006e5575190600162000654565b600080fd5b3d9150620006c3565b604051903d90823e3d90fd5b6200070b8391620051d2565b620003675738620005d1565b8580fd5b92989796959493926001146200073b575b505060209394959650620005d8565b603f549293926001600160a01b03169062000756906200757f565b91813b15620003c85790620007938489819594620007a36040519e8f978896879563028bf0d560e11b87526060600488015260648701906200562b565b91858303016024860152620056b8565b90604483015203925af1968715620007e057602094959697620007ce575b879695949291926200072c565b620007d990620051d2565b38620007c1565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000858575b81620008436020938362005257565b81010312620008545751386200054e565b8680fd5b3d915062000834565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008b1575b816200089f6020938362005257565b81010312620007175751933862000500565b3d915062000890565b6040513d88823e3d90fd5b5034620003595760c036600319011262000359576004356001600160401b0381116200036757620008fb90369060040162005755565b62000905620052d4565b906200091062005302565b6064356001600160a01b0381168103620006e557608435906001600160a01b0382168203620006e55760a435926001600160a01b0384168403620006e557604051956200095d876200517e565b6005875260005b60a0811062000e495750604051906200097d82620051b6565b6001600160a01b031681526020810188905262000999620059a4565b6040820152620009a9876200639e565b52620009b5866200639e565b5060405190620009c582620051b6565b6001600160a01b0316815260208101879052620009e162005dd6565b6040820152620009f186620063c2565b52620009fd85620063c2565b506040519062000a0d82620051b6565b6001600160a01b031681526020810186905262000a2962005ee7565b604082015262000a3985620063d3565b5262000a4584620063d3565b506040519062000a5582620051b6565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000dd45762000b0094549181811062000d3f575b81811062000d1f575b81811062000cff575b81811062000cdf575b81811062000cbf575b81811062000c9f575b81811062000c81575b1062000c6b575b50038262005257565b604082015262000b1084620063e4565b5262000b1c83620063e4565b506040519062000b2c82620051b6565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000d5f5762000bcf94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262000bdf83620063f5565b5262000beb82620063f5565b50604051916114a4808401908482106001600160401b0383111762000c57579184939162000c1f93620099ef863962007381565b039082f08015620007e057602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000af7565b602083811b6001600160e01b03191685529093019260010162000af0565b604083901b6001600160e01b031916845260209093019260010162000ae7565b606083901b6001600160e01b031916845260209093019260010162000ade565b608083901b6001600160e01b031916845260209093019260010162000ad5565b60a083901b6001600160e01b031916845260209093019260010162000acc565b60c083901b6001600160e01b031916845260209093019260010162000ac3565b60e083901b6001600160e01b031916845260209093019260010162000aba565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000b76565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a9f565b60209062000e566200630c565b82828b0101520162000964565b50346200035957806003193601126200035957604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b8582821062000ee35750505062000ec99250038362005257565b62000edf6040519282849384528301906200547a565b0390f35b85546001600160a01b031684526001958601958895509301920162000eaf565b503462000359576020366003190112620003595762000edf62000f3362000f29620052eb565b620005f8620074b7565b916040959395519586958662005688565b50346200035957604036600319011262000359578062000f63620052eb565b6024356001600160401b0381116200108c5762000f859036906004016200541d565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620010c45760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008ba578691620010ac575b5050813b15620010a857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003ed57849162001090575b5050602d5416803b156200108c57620010668391670de0b6b3a7640000936040519485809481936330b858b160e11b83526020600484015260248301906200559e565b03925af180156200035c57620010795750f35b6200108490620051d2565b620003595780f35b5050fd5b6200109b90620051d2565b6200108c57823862001023565b8480fd5b620010b790620051d2565b620010a857843862000fdc565b505050fd5b50346200035957602036600319011262000359576004356001600160401b0381116200036757620010ff90369060040162005755565b604051613942808201908282106001600160401b038311176200191057908291620208e58339039083f09081156200035c5760405161154f808201908282106001600160401b0383111762000c57579082916201f3968339039084f080156200039f57604051610230808201908282106001600160401b03831117620018fc57908291620242278339039085f0908115620003ed5760405161069b808201908282106001600160401b03831117620018e857908291620244578339039086f08015620003cc57604051612f0f808201908282106001600160401b03831117620018d4579082916201c4878339039087f0908115620008ba57604051610884808201908282106001600160401b03831117620018c0579082916200cce18339039088f09384156200086157604051610d30808201908282106001600160401b03831117620018ac579082916200bfb18339039089f0938415620018a157620012656200632f565b97604051906200127582620051b6565b60018060a01b0316815289602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b8060078301106200182c576200131894549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001328896200639e565b5262001334886200639e565b50604051906200134482620051b6565b6001600160a01b031681526020810189905262001360620059a4565b60408201526200137088620063c2565b526200137c87620063c2565b50604051906200138c82620051b6565b60018060a01b0316815287602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b806007830110620017b7576200142f94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200143f87620063d3565b526200144b86620063d3565b50604051906200145b82620051b6565b60018060a01b0316815286602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b8060078301106200174257620014fe94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200150e86620063e4565b526200151a85620063e4565b50604051906200152a82620051b6565b60018060a01b0316815285602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b806007830110620016cd57620015cd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b6040820152620015dd85620063f5565b52620015e984620063f5565b5060405190620015f982620051b6565b6001600160a01b03168152602081018590526200161562005bb4565b6040820152620016258462006406565b52620016318362006406565b50604051906200164182620051b6565b6001600160a01b03168152602081018490526200165d62005cc5565b60408201526200166d8362006417565b52620016798262006417565b50604051916114a4808401908482106001600160401b0383111762000c575791849391620016ad93620099ef863962007381565b039082f08015620007e0576040516001600160a01b039091168152602090f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001574565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620014a5565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620013d6565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620012bf565b6040513d8a823e3d90fd5b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b503462000359576003196020368201126200036757600435906001600160401b038211620003f85760a090823603011262000367576040519060a082018281106001600160401b038211176200214d57604052620019858160040162005319565b8252620019956024820162005319565b6020830152620019a86044820162005319565b604083015260648101356001600160401b038111620003c857620019d39060043691840101620056dd565b60608301526084810135906001600160401b038211620003c8576004620019fe9236920101620056dd565b6080820152604051908160a08101106001600160401b0360a0840111176200214d5760a082016040526004825260005b6080811062002133575060405180610d308101106001600160401b03610d30830111176200211f57610d306200bfb1823980610d308101039084f080156200039f57604051806108848101106001600160401b036108848301111762001910576108846200cce18239806108848101039085f0908115620003ed5760405180611ec58101106001600160401b03611ec58301111762000c5757611ec562024af2823980611ec58101039086f0908115620003cc5760405180610b3d8101106001600160401b03610b3d83011117620018fc57610b3d620269b7823980610b3d8101039087f0928315620008ba576040519062001b2a82620051b6565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620020a95762001bcd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001bdd866200639e565b5262001be9856200639e565b506040519062001bf982620051b6565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620020335762001c9c94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001cac85620063c2565b5262001cb884620063c2565b506040519062001cc882620051b6565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b80600783011062001fbd5762001d6b94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001d7b84620063d3565b5262001d8783620063d3565b506040519062001d9782620051b6565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001f475762001e3a94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262001e4a83620063e4565b5262001e5682620063e4565b506040519161111e90818401918483106001600160401b0384111762000c57579162001e9885949262001f00946200ae9387396040835260408301906200644c565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001eee606084015160a0606085015260a0840190620054b9565b920151906080818403910152620054b9565b039082f08015620007e05760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001de1565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001d12565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001c43565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001b74565b634e487b7160e01b84526041600452602484fd5b602090620021406200630c565b8282860101520162001a2e565b634e487b7160e01b600052604160045260246000fd5b50346200035957806003193601126200035957602062002182620058a5565b6040519015158152f35b50346200035957806003193601126200035957601054620021ad81620052bc565b90620021bd604051928362005257565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062002205576040518062000edf8882620055c5565b604051849188549160019280841c908481168015620022d0575b8783108114620022bc57828452879493929181156200229e575060011462002262575b506200225381600196038262005257565b815201970192019195620021ed565b8b8952838920955088905b8082106200228657508101830194506200225362002242565b8654838301860152958501958794909101906200226d565b60ff19168584015250151560051b8101830194506200225362002242565b634e487b7160e01b8a52602260045260248afd5b91607f16916200221f565b50346200035957602036600319011262000359578080604051620022ff816200519a565b601c81527f726577617264206d6574686f642063616c6c656420776974682025640000000060208201526040516200236d816200235660208201946309710a9d60e41b86526040602484015260648301906200559e565b600435604483015203601f19810183528262005257565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003595760c036600319011262000359576200239f620052eb565b6024908135916001831015620003c857620023b962005279565b91620023c462005290565b92620023cf620053e1565b60405192620023de846200521f565b6000845260405193620023f1856200519a565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620028b157908291620208e5833903906000f09889156200287c5760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f80820190828210898311176200289c579082916201f396833903906000f080156200287c578a168b602f541617602f5560405161023080820190828210898311176200289c5790829162024227833903906000f080156200287c578a168b6031541617603155604051612f0f80820190828210898311176200289c579082916201c487833903906000f080156200287c578a168b603254161760325560405161069b80820190828210898311176200289c5790829162024457833903906000f080156200287c578a168b6030541617603055604051610d3080820190828210898311176200289c579082916200bfb1833903906000f080156200287c578a168b603354161760335560405161088480820190828210898311176200289c579082916200cce1833903906000f09384156200287c576200277497620027ac889485938f8f908160ff9b1680916034541617603455620025b46200632f565b9d8e83602d541660405190620025ca82620051b6565b8152600086820152620025dc62005dd6565b6040820152620025ec826200639e565b52620025f8816200639e565b5083602f5416604051906200260d82620051b6565b81526000868201526200261f620059a4565b60408201526200262f82620063c2565b526200263b81620063c2565b508360315416604051906200265082620051b6565b81526000868201526200266262005ee7565b60408201526200267282620063d3565b526200267e81620063d3565b508360305416604051906200269382620051b6565b8152600086820152620026a562005ff8565b6040820152620026b582620063e4565b52620026c181620063e4565b50836032541660405190620026d682620051b6565b8152600086820152620026e862006109565b6040820152620026f882620063f5565b526200270481620063f5565b508360335416604051906200271982620051b6565b81526000868201526200272b62005bb4565b60408201526200273b8262006406565b52620027478162006406565b50604051926200275784620051b6565b83526000858401526200276962005cc5565b604084015262006417565b52620027808d62006417565b506200278b62007484565b9a6040519e8f6200279c81620051e6565b5216908d015260408c0162007477565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a4908186019286841090841117620028885750918493916200281d93620099ef863962007381565b03906000f080156200287c5716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035957806003193601126200035957604051620028e7816200523b565b6003815260005b6060811062002fef575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039f57839062002fb0575b6200294d91506200757f565b62002958876200639e565b5262002964866200639e565b5060405183815260c8600482015284818381895afa80156200039f57839062002f71575b6200299491506200757f565b6200299f87620063c2565b52620029ab86620063c2565b506040519280845261012c93846004820152858184818a5afa8015620003ed57849062002f32575b620029df91506200757f565b620029ea88620063d3565b52620029f687620063d3565b506040519562002a06876200523b565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008ba57869462002ef3575b5062002a43896200639e565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200086157879162002eb6575b508462002a818b620063c2565b9116905260405181815287600482015288818781875afa9081156200086157879162002e79575b508462002ab58b620063d3565b911690526040519062002ac8826200523b565b600382528b368a8401376040519080825283600483015289828881885afa918215620018a157889262002e3a575b50843b1562002d795760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562002dd657908a9162002e22575b505060405182815260c860048201528b818a818a5afa90811562002dd6578a9162002de5575b50863b1562002de15787604051918583521660048201528a898201528981604481838b5af1801562002dd657908a9162002dba575b5050604051918252600482015289818881885afa908115620018a157889162002d7d575b50843b1562002d795785906040519283521660048201528786820152868160448183885af18015620008615790879162002d61575b5050808262002bff62002c13936200639e565b528262002c0c82620063c2565b52620063d3565b526040519262002c23846200519a565b4384528487850152813b15620010a85760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003ed57918493918a9362002d41575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035c5762002d20575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062002ceb57888803868a0152888062000edf8a8a6200547a565b9193975091848062002d0b83979899605f198d82030186528b51620056b8565b99019201920188979695949293919362002cce565b62002d3a90873d8911620003975762000387818362005257565b5062002ca5565b62002d51919350939193620051d2565b620003f857829188913862002c68565b62002d6c90620051d2565b6200071757853862002bec565b8780fd5b90508981813d831162002db2575b62002d97818362005257565b8101031262002d795762002dab9062007523565b3862002bb7565b503d62002d8b565b62002dc590620051d2565b62002dd257883862002b93565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162002e1a575b62002dff818362005257565b8101031262002de15762002e139062007523565b3862002b5e565b503d62002df3565b62002e2d90620051d2565b62002dd257883862002b38565b9091508981813d831162002e71575b62002e55818362005257565b8101031262002d795762002e699062007523565b903862002af6565b503d62002e49565b90508881813d831162002eae575b62002e93818362005257565b81010312620008545762002ea79062007523565b3862002aa8565b503d62002e87565b90508881813d831162002eeb575b62002ed0818362005257565b81010312620008545762002ee49062007523565b3862002a74565b503d62002ec4565b9093508781813d831162002f2a575b62002f0e818362005257565b81010312620007175762002f229062007523565b923862002a37565b503d62002f02565b508581813d831162002f69575b62002f4b818362005257565b81010312620003c85762002f63620029df9162007523565b620029d3565b503d62002f3f565b508481813d831162002fa8575b62002f8a818362005257565b81010312620003f85762002fa2620029949162007523565b62002988565b503d62002f7e565b508481813d831162002fe7575b62002fc9818362005257565b81010312620003f85762002fe16200294d9162007523565b62002941565b503d62002fbd565b60209062002ffc620074b7565b82828501015201620028ee565b503462000359576040366003190112620003595762003027620052eb565b62003031620052d4565b603e546001600160a01b031690813b15620006e557604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003ed5762003759575b506200308b6004918362007c01565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039f57839262003731575b506020620030f191604051809381926390ba52cf60e01b835284600484015260248301906200562b565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f578684918293620036f2575b5060405163aa5106cb60e01b81529293839182916200314191906004840162007738565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f5762003195916020918591620036d4575b50604051809381926390ba52cf60e01b835284600484015260248301906200562b565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f357926200369a575b50036200362357620031eb620031f292620031e4670de0b6b3a764000060049714620078e1565b156200785c565b156200789c565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e0576200324a9385918391620035df575b5060405163aa5106cb60e01b815294859283926004840162007738565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620035fd575b5062003282600492936200757f565b6040519362003291856200519a565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e057620032ef9383918391620035df575060405163aa5106cb60e01b815294859283926004840162007738565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620035b1575b5062003324906200757f565b6040519162003333836200519a565b825260208201526040519062003349826200521f565b838252604051926200335b8462005203565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200339f866200519a565b855285602086015260405192620033b6846200519a565b600194858552875b602081106200354a57505050505082620033d8826200639e565b52620033e4816200639e565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003675760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035c5762003532575b50506042546001600160a01b031690813b15620010a85791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620034fb5750505050508383809203925af180156200039f57620034e3575b602082604051620034d881620034c9858201948686526040830190620077bd565b03601f19810183528262005257565b519020604051908152f35b620034ef8391620051d2565b620003675781620034a8565b92959750929550926020806200351d87936043198c82030186528951620077bd565b970192019201928795938a9795929362003486565b6200353d90620051d2565b620003c857833862003435565b6020906040516200355b816200519a565b604051620035698162005203565b6200357362007762565b81526200357f62007762565b848201528b60408201528b888201528b8682015287878201528b8582015281528a8382015282828901015201620033be565b62003324919250620035d7903d8087833e620035ce818362005257565b8101906200770f565b919062003318565b620035f691503d8085833e620035ce818362005257565b386200322d565b600492506200361b62003282913d8088833e620035ce818362005257565b925062003273565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620036cb575b81620036b96020938362005257565b81010312620006e557519038620031bd565b3d9150620036aa565b620036eb91503d8087833e620035ce818362005257565b3862003172565b925050506020813d60201162003728575b81620037126020938362005257565b81010312620006e557518286620031416200311d565b3d915062003703565b620030f1919250620037506020913d8087833e620035ce818362005257565b929150620030c7565b600491936200376c6200308b92620051d2565b9391506200307c565b50346200035957602080600319360112620003675762003794620052eb565b91604051614ffa908181016001600160401b0392828210848311176200191057908291620274f48339039083f09081156200035c5760405161154f808201908282108483111762000c57579082916201f3968339039084f09485156200039f57604051906200380382620051b6565b600282528560005b6040811062003bea575050604051966200382588620051b6565b6001600160a01b039485168852868801869052604051602980548083526000918252828a019a9291907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b81600784011062003b74579a809c620038e293859362003a029b9c9d9e54918482821062003b55575b82821062003b36575b82821062003b17575b82821062003af8575b82821062003ad9575b82821062003aba575b82821062003a9d575b501062003a87575b509050038262005257565b6040820152620038f2846200639e565b52620038fe836200639e565b5085604051916200390f83620051b6565b168152868882015262003921620059a4565b60408201526200393183620063c2565b526200393d82620063c2565b506040516200394c81620051e6565b62003956620074b7565b815286888201528660408201528660608201528660808201528660a08201528660c08201528660e0820152866101008181840152600c61012083818601526402540be4006101409385858801528d600060405191620039b5836200519a565b818352820152610160809801528d8c620039ce62007484565b99604051620039dd816200521f565b89815260405190620039ef826200519a565b607b8252848201526040519d8e620051e6565b8d5216908b01528560408b0152670de0b6b3a764000060608b0152600160808b0152600a60a08b0152604660c08b0152606460e08b0152890152870152850152830152604051926114a48085019185831090831117620018fc579184939162003a7193620099ef863962007381565b039083f0918215620006f3575060405191168152f35b6001600160e01b03191681528d910138620038d7565b83811b6001600160e01b03191685529093019260010184620038cf565b604084901b6001600160e01b03191685529093019260010184620038c6565b606084901b6001600160e01b03191685529093019260010184620038bd565b608084901b6001600160e01b03191685529093019260010184620038b4565b60a084901b6001600160e01b03191685529093019260010184620038ab565b60c084901b6001600160e01b03191685529093019260010184620038a2565b60e084901b6001600160e01b0319168552909301926001018462003899565b91816008600160079f8f9061010091885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019201939d505062003870565b62003bf46200630c565b8282860101520186906200380b565b5034620003595780600319360112620003595760135462003c2481620052bc565b9062003c34604051928362005257565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062003c7b576040518062000edf8782620054f9565b60028260019260405162003c8f816200519a565b848060a01b038a5416815262003ca7858b016200621a565b8382015281520196019201919462003c63565b503462000359576040366003190112620003595762000edf62000f3362003ce0620052eb565b62003cea620052d4565b9062007c01565b5034620003595780600319360112620003595760115462003d1281620052bc565b9062003d22604051928362005257565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062003d6a576040518062000edf8882620055c5565b604051849188549160019280841c90848116801562003e21575b8783108114620022bc578284528794939291811562003e03575060011462003dc7575b5062003db881600196038262005257565b81520197019201919562003d52565b8b8952838920955088905b80821062003deb575081018301945062003db862003da7565b86548383018601529585019587949091019062003dd2565b60ff19168584015250151560051b81018301945062003db862003da7565b91607f169162003d84565b5034620003595760031990604036830112620003595762003e4c620052eb565b60249283359160018060a01b0362003eb362003e7d82602d541662003e70620074b7565b5083603e54169062007c01565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a6200562b565b03915afa9586156200287c5760009662004106575b5060018601809611620040f15760018901809911620040f1578662003ef084600493620074d3565b9b60405192838092632472942560e01b82525afa9081156200287c57600091620040be575b5015620040875762003f2c87603f5416946200757f565b93803b15620006e55762003f77946000938e6040519788958694859363018f44b760e41b85526040600486015262003f68604486018c6200562b565b928584030190850152620056b8565b03925af19081156200287c578a9762003fda93869362004075575b5062003fb387602d541662003fa6620074b7565b5088603e54169062007c01565b9c93505098905060405416916040519586948593849384528760048501528301906200562b565b03915afa9081156200287c5760009162004042575b50036200400a5750620004329392916200067291146200785c565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200406d575b6200405b818362005257565b81010312620003595750513862003fef565b503d6200404f565b6200408090620051d2565b3862003f92565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d8311620040e9575b620040d7818362005257565b81010312620003595750513862003f15565b503d620040cb565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162004133575b62004120818362005257565b8101031262000359575051943862003ec8565b503d62004114565b503462000359578060031936011262000359576012546200415c81620052bc565b906200416c604051928362005257565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b838310620041b3576040518062000edf8782620054f9565b600282600192604051620041c7816200519a565b848060a01b038a54168152620041df858b016200621a565b838201528152019601920191946200419b565b50346200035957604036600319011262000359576200043262004214620052d4565b603e546001600160a01b03169060043562007921565b50346200035957610100366003190112620003595762004249620052eb565b6001602435101562000367576200425f62005279565b6200426962005290565b9162004274620053e1565b91600360c4351015620010a85760e43561ffff81168103620006e557604051946200429f866200521f565b6000865260405195620042b2876200519a565b607b875260208701526040516139428082018281106001600160401b038211176200214d578291620208e5833903906000f080156200287c5760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b038211176200214d5782916201f396833903906000f080156200287c5760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b038211176200214d57829162024227833903906000f080156200287c5760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b038211176200214d5782916201c487833903906000f080156200287c5760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b038211176200214d57829162024457833903906000f080156200287c5760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b038211176200214d5782916200bfb1833903906000f080156200287c5760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b038211176200214d5782916200cce1833903906000f09485156200287c57603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620044e56200632f565b602d54604051919b91906001600160a01b03166200450382620051b6565b8152600060208201526200451662005dd6565b6040820152620045268c6200639e565b52620045328b6200639e565b50602f54604051906001600160a01b03166200454e82620051b6565b81526000602082015262004561620059a4565b6040820152620045718c620063c2565b526200457d8b620063c2565b50603154604051906001600160a01b03166200459982620051b6565b815260006020820152620045ac62005ee7565b6040820152620045bc8c620063d3565b52620045c88b620063d3565b50603054604051906001600160a01b0316620045e482620051b6565b815260006020820152620045f762005ff8565b6040820152620046078c620063e4565b52620046138b620063e4565b50603254604051906001600160a01b03166200462f82620051b6565b8152600060208201526200464262006109565b6040820152620046528c620063f5565b526200465e8b620063f5565b50603354604051906001600160a01b03166200467a82620051b6565b8152600060208201526200468d62005bb4565b60408201526200469d8c62006406565b52620046a98b62006406565b5060405190620046b982620051b6565b6001600160a01b0316815260006020820152620046d562005cc5565b6040820152620046e58b62006417565b52620046f18a62006417565b50620046fc62007484565b986040519b6200470c8d620051e6565b8c526001600160a01b031660208c01526200472d60243560408d0162007477565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200476e60c4356200637d565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200214d578493620047af93620099ef863962007381565b03906000f080156200287c57602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b503462000359576020366003190112620003595762004843620052eb565b6200484d620074e1565b906200485d620001e7826200757f565b5060646200022560405162004872816200519a565b60018152602036818301376200639e565b50346200035957806003193601126200035957604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620048e95750505062000ec99250038362005257565b85546001600160a01b0316845260019586019588955093019201620048cf565b50346200035957806003193601126200035957604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200496f5750505062000ec99250038362005257565b85546001600160a01b031684526001958601958895509301920162004955565b503462000359576020806003193601126200036757604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003cc57859262004b4d575b5060016001600160401b03809316019082821162004b375780603f5416908662004a06336200757f565b92803b15620003675762004a399382916040518080978194636b2c1eef60e01b83528d60048401526024830190620056b8565b0391600435905af1928315620007e057879362004b1a575b5050604054169360046040518096819382525afa928315620003cc57859362004ada575b50811691160362004a84575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004b12575b62004af5818362005257565b81010312620010a85762004b0a829162007647565b929062004a75565b503d62004ae9565b62004b2891929350620051d2565b62000717578490863862004a51565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162004b84575b62004b68818362005257565b81010312620010a85762004b7c9062007647565b9038620049dc565b503d62004b5c565b503462000359576020806003193601126200036757600435916001600160401b0391828411620003675736602385011215620003675783600401359062004bd382620052bc565b9162004be3604051938462005257565b8083528183019560249687600593841b83010191368311620008545788859101915b83831062004c9157505050508384905b868216600381101562004c87578551111562004c725762004c4b879185681fffffffffffffffe085871b168801015190620074d3565b911686811462004c5f576001019062004c15565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162004c05565b503462000359576040366003190112620003595760043562004cc3620052d4565b80319062004cd0620074b7565b50603e546001600160a01b03929062004cec9084168362007c01565b50505092905083603f541686813b15620003595786916004604051809481936316989f6f60e21b83525af18015620008615762004dab575b508062004d4391319462004d37620074b7565b50603e54169062007c01565b5050509390508482039182116200086c570362004d7157620004329262004d6a91620074d3565b14620078e1565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562004dbc62004d439297620051d2565b959062004d24565b50346200035957806003193601126200035957604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062004e2a5750505062000ec99250038362005257565b85546001600160a01b031684526001958601958895509301920162004e10565b5034620003595760031960203682011262000367576001600160401b0360043511620003675760c0906004353603011262000359576040519062004e8e826200517e565b600435600401356001600160401b038111620003675762004eb79060043691813501016200532e565b8252600435602481013560208401526044810135604084015262004ede90606401620053f2565b6060830152608460043501356001600160401b038111620003675736602382600435010112156200036757600481813501013562004f1c81620052bc565b9262004f2c604051948562005257565b81845260208401923660248460051b836004350101011162000367576024816004350101935b60248460051b83600435010101851062004fa057602062004f8e8888608082015262004f8360a4600435016200546a565b60a0820152620064d3565b6040516001600160a01b039091168152f35b84356001600160401b038111620003c85760606004358401820136036023190112620003c8576040519062004fd582620051b6565b600435840181016024810135835262004ff19060440162005319565b60208301526001600160401b03606482866004350101013511620010a85760249260209283926200503290369060043589010160648101350187016200541d565b6040820152815201950194905062004f52565b8190346200517b57816003193601126200517b57806200506760a0926200517e565b62005071620074b7565b81528260208201528260408201528260608201526060608082015201526040516200509c816200519a565b6001815260203681830137600a620050b4826200639e565b5260405190620050c4826200519a565b607b82526020820152604051620050db816200521f565b82815260405191620050ed836200517e565b8252600a60208301526402540be4006040830152604660608301526080820152606460a08201526001600160a01b03906200512890620064d3565b166001600160601b0360a01b8181603e541617603e55818160405416176040558181603f541617603f55818160425416176042558181604554161760455581816047541617604755604654161760465580f35b50fd5b60c081019081106001600160401b038211176200214d57604052565b604081019081106001600160401b038211176200214d57604052565b606081019081106001600160401b038211176200214d57604052565b6001600160401b0381116200214d57604052565b61018081019081106001600160401b038211176200214d57604052565b60e081019081106001600160401b038211176200214d57604052565b602081019081106001600160401b038211176200214d57604052565b608081019081106001600160401b038211176200214d57604052565b90601f801991011681019081106001600160401b038211176200214d57604052565b606435906001600160401b0382168203620006e557565b608435906001600160401b0382168203620006e557565b35906001600160401b0382168203620006e557565b6001600160401b0381116200214d5760051b60200190565b602435906001600160a01b0382168203620006e557565b600435906001600160a01b0382168203620006e557565b604435906001600160a01b0382168203620006e557565b35906001600160a01b0382168203620006e557565b9190604083820312620006e557604051926200534a846200519a565b836200535682620052a7565b815260209182810135906001600160401b038211620006e557019280601f85011215620006e55783356200538a81620052bc565b946200539a604051968762005257565b818652848087019260051b820101928311620006e55784809101915b838310620053c657505050500152565b8190620053d38462005319565b8152019101908490620053b6565b60a4359060ff82168203620006e557565b359060ff82168203620006e557565b6001600160401b0381116200214d57601f01601f191660200190565b81601f82011215620006e557803590620054378262005401565b9262005447604051948562005257565b82845260208383010111620006e557816000926020809301838601378301015290565b359061ffff82168203620006e557565b90815180825260208080930193019160005b8281106200549b575050505090565b83516001600160a01b0316855293810193928101926001016200548c565b90815180825260208080930193019160005b828110620054da575050505090565b83516001600160e01b03191685529381019392810192600101620054cb565b602080820190808352835180925260409283810182858560051b8401019601946000925b8584106200552f575050505050505090565b90919293949596858062005567600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620054b9565b9901940194019295949391906200551d565b60005b8381106200558d5750506000910152565b81810151838201526020016200557c565b90602091620055b98151809281855285808601910162005579565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620055fa5750505050505090565b90919293949584806200561a600193603f198682030187528a516200559e565b9801930193019194939290620055e9565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106200566a575050505090565b83516001600160a01b0316855293810193928101926001016200565b565b919594939092620056a460809460a0855260a08501906200562b565b966020840152604083015260608201520152565b9060406020620056da9360ff815116845201519181602082015201906200559e565b90565b81601f82011215620006e557803591620056f783620052bc565b9262005707604051948562005257565b808452602092838086019260051b820101928311620006e5578301905b82821062005733575050505090565b81356001600160e01b031981168103620006e557815290830190830162005724565b9190918083036101a08112620006e5576040516200577381620051e6565b80948335906001600160401b038211620006e557620057949185016200532e565b8152620057a46020840162005319565b602082015260408301356001811015620006e557604082015260608301356060820152620057d560808401620052a7565b6080820152620057e860a08401620052a7565b60a0820152620057fb60c08401620053f2565b60c08201526200580e60e084016200546a565b60e08201526101008084013590820152610120918284013560009381850b8203620010a85783015261014080850135906003821015620010a857830152604061015f199091011262000367576040519262005869846200519a565b610160928382013590600282101562000359575084526200588e906101800162005319565b60208401520152565b51908115158203620006e557565b6000805460081c60ff1615620058bf575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620058e157505090565b819250819060405182602082018381526519985a5b195960d21b6040840152604083526200590f83620051b6565b6200594b602460405180936200593a6020830197630667f9d760e41b89525180928585019062005579565b810103600481018452018262005257565b51925af1503d156200599b573d90620059648262005401565b9162005974604051938462005257565b82523d81602084013e5b6020828051810103126200035957506020620056da910162005897565b6060906200597e565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005b40578462005a4997549383831062005b1f575b83831062005afe575b83831062005add575b83831062005abc575b83831062005a9b575b83831062005a7d575b5082821062005a60575b501062005a4b575b509050038362005257565b565b6001600160e01b031916815201803862005a3e565b83811b6001600160e01b0319168552909301926001018462005a36565b84901b6001600160e01b031916855290930192600101843862005a2c565b606085901b6001600160e01b03191686529481019460019092019162005a23565b608085901b6001600160e01b03191686529481019460019092019162005a1a565b60a085901b6001600160e01b03191686529481019460019092019162005a11565b60c085901b6001600160e01b03191686529481019460019092019162005a08565b60e085901b6001600160e01b031916865294810194600190920191620059ff565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620059e3565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005c51578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005bf3565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005d62578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d04565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062005e73578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e15565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b81600782011062005f84578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005f26565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062006095578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006037565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b816007820110620061a6578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006148565b906040918251809382549283835260209182840191600052826000209460005b81600782011062006298578462005a4997549383831062005b1f5783831062005afe5783831062005add5783831062005abc5783831062005a9b5783831062005a7d575082821062005a6057501062005a4b57509050038362005257565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b831690880152911690850152600190960195889550610100909301926008016200623a565b604051906200631b82620051b6565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b038211176200214d57604052600782528160005b60e0811062006363575050565b602090620063706200630c565b8282850101520162006356565b600311156200638857565b634e487b7160e01b600052602160045260246000fd5b805115620063ac5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620063ac5760400190565b805160021015620063ac5760600190565b805160031015620063ac5760800190565b805160041015620063ac5760a00190565b805160051015620063ac5760c00190565b805160061015620063ac5760e00190565b805160071015620063ac576101000190565b805160081015620063ac576101200190565b90815180825260208092019182818360051b85019501936000915b848310620064785750505050505090565b9091929394958480620064c283856001950387528a51858060a01b03815116825283810151620064a8816200637d565b8483015260408091015191606080928201520190620054b9565b980193019301919493929062006467565b906040516117848082018281106001600160401b038211176200214d57829162016ce5833903906000f080156200287c576040516116598082018281106001600160401b038211176200214d5782916201ae2e833903906000f080156200287c576040516129c58082018281106001600160401b038211176200214d57829162018469833903906000f09081156200287c57604051612a728082018281106001600160401b038211176200214d57829162014273833903906000f080156200287c576040516126e78082018281106001600160401b038211176200214d5782916200f7c6833903906000f080156200287c576040516122618082018281106001600160401b038211176200214d5782916200d565833903906000f09081156200287c576040516123c68082018281106001600160401b038211176200214d57829162011ead833903906000f09283156200287c57604051610d308082018281106001600160401b038211176200214d5782916200bfb1833903906000f09586156200287c576040516108848082018281106001600160401b038211176200214d5782916200cce1833903906000f09586156200287c57604051986101408a018a81106001600160401b038211176200214d5760405260098a5260005b610120811062007366575060405190620066c982620051b6565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620072f1576200676d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200677d8a6200639e565b5262006789896200639e565b50604051906200679982620051b6565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b8060078301106200727c576200683d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200684d8962006417565b52620068598862006417565b50604051906200686982620051b6565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062007207576200690d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b60408201526200691d8862006428565b52620069298762006428565b50604051906200693982620051b6565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b8060078301106200719257620069dd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b6040820152620069ed876200643a565b52620069f9866200643a565b506040519062006a0982620051b6565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b8060078301106200711d5762006aad94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006abd86620063c2565b5262006ac985620063c2565b506040519062006ad982620051b6565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b806007830110620070a85762006b7d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006b8d85620063d3565b5262006b9984620063d3565b506040519062006ba982620051b6565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b806007830110620070335762006c4d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006c5d84620063e4565b5262006c6983620063e4565b506040519062006c7982620051b6565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006fbe5762006d1d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006d2d83620063f5565b5262006d3982620063f5565b506040519062006d4982620051b6565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006f495762006ded94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262005257565b604082015262006dfd8262006406565b5262006e098162006406565b5060405190611b4d808301918383106001600160401b038411176200214d5762006e429162007ea285396040835260408301906200644c565b90602081830391015262006e60845160c0835260c08301906200562b565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006ef65750505050505060a061ffff8185969701511691015203906000f080156200287c57603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006f38600193601f198682030188528660408d5180518452878060a01b0386820151168685015201519181604082015201906200559e565b990194019401929493919062006eab565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006d94565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006cc4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006bf4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b24565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006a54565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006984565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620068b4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620067e4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006714565b808b60208093620073766200630c565b9201015201620066af565b9062007396906040835260408301906200644c565b906020818303910152620073b482516101a08084528301906200562b565b9160018060a01b038060208301511660208401526040820151600181101562006388576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b9084015261014080830151906200744c826200637d565b8401526101608092015191825192600284101562006388576101809360209286015201511691015290565b6001821015620063885752565b6000602060405162007496816200519a565b8281520152604051620074a9816200519a565b600081526000602082015290565b60405190620074c6826200519a565b6060602083600081520152565b9190820180921162004b3757565b60405190620074f0826200519a565b600182528160005b602090818110156200751e5760209162007511620074b7565b90828501015201620074f8565b505050565b51906001600160a01b0382168203620006e557565b809291039160608312620006e5576040620075538262005897565b93601f190112620006e55760408051916200756e836200519a565b602081015183520151602082015290565b6001600160401b039062007592620074b7565b506200762e6040918251906001600160601b03199060601b16602082015260148152620075bf816200519a565b6200761f835191620075d183620051b6565b600a83526fffffffffffffffffffffffffffffffff6020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a08301906200559e565b03601f19810184528362005257565b51906200763b826200519a565b60048252602082015290565b51906001600160401b0382168203620006e557565b9190604083820312620006e5576040519262007678846200519a565b83620076848262007647565b815260209182810151906001600160401b038211620006e557019280601f85011215620006e5578351620076b881620052bc565b94620076c8604051968762005257565b818652848087019260051b820101928311620006e55784809101915b838310620076f457505050500152565b8190620077018462007523565b8152019101908490620076e4565b90602082820312620006e55781516001600160401b038111620006e557620056da92016200765c565b90620077526020919493946040845260408401906200562b565b6001600160a01b03909416910152565b6040519062007771826200519a565b816200777c620074b7565b815260206200778a620074b7565b910152565b620056da916020620077ab83516040845260408401906200562b565b920151906020818403910152620056b8565b906020808351936040845260c062007849620077e7875160e060408901526101208801906200778f565b620078048589015191603f1992838a83030160608b01526200778f565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e08901526200559e565b9501516101008501520151151591015290565b156200786457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b15620078a457565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b15620078e957565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e557829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007bf75790889493929162007be0575b506200797e85918462007c01565b9b93969298919a90508554168551938480926394074b0360e01b82525afa91821562007bd657839262007bb6575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b90818452888480620079ec60209b8c809584015260248301906200562b565b0381865af493841562007bac57908691829562007b70575b50875163aa5106cb60e01b815294958591829162007a2691908d840162007738565b0381855af492831562007b66579162007a5f93918893879362007b46575b5087518095819482938352868d84015260248301906200562b565b03915af492831562007b3b579262007b06575b500362007a935750505091620031e4620031eb9262005a49959414620078e1565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d831162007b33575b62007b21818362005257565b81010312620006e55751903862007a72565b503d62007b15565b8451903d90823e3d90fd5b62007b5e9193503d8089833e620035ce818362005257565b913862007a44565b86513d87823e3d90fd5b89809296508193503d831162007ba4575b62007b8d818362005257565b81010312620006e5575192859062007a2662007a04565b503d62007b81565b87513d88823e3d90fd5b62007bce9192503d8085833e620035ce818362005257565b9038620079ac565b84513d85823e3d90fd5b9462007bf06200797e96620051d2565b9462007970565b83513d87823e3d90fd5b9062007c0c620074b7565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa91821562007e97579280929162007ca094829362007e77575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007738565b0381845af492831562007e4a57829362007e54575b5062007ce6929385541693855180926390ba52cf60e01b82528180602097889586600484015260248301906200562b565b03915af490811562007e4a57908291829162007e13575b50602486518096819363017187cd60e11b835260048301525afa92831562007e0757819362007d54575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e62007d69818362005257565b8101918382840312620003595781516001600160401b0392838211620003f857019060c082850312620003595785519462007da4866200517e565b825186528083015190860152858201518686015262007dc66060830162007647565b606086015262007dd96080830162007647565b608086015260a082015192831162000359575062007df99291016200765c565b60a082015238808062007d27565b508351903d90823e3d90fd5b809250848092503d831162007e42575b62007e2f818362005257565b8101031262000367578190513862007cfd565b503d62007e23565b85513d84823e3d90fd5b62007ce6935062007e70903d8085833e620035ce818362005257565b9262007cb5565b62007e8f9193503d8084833e620035ce818362005257565b913862007c6d565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a2646970667358221220666715ef7e14a4cce2e9eb790500afcf38c6cbb06a53aa3d39239129d34830fb64736f6c63430008130033","sourceMap":"727:1366:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;:::i;:::-;28446:19:91;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;:::-;28475:48;727:1366:92;28475:48:91;;;;:::i;:::-;;;:::i;:::-;;727:1366:92;;;;;:::i;:::-;28463:1:91;727:1366:92;;1220:14:3;727:1366:92;1220:14:3;;;3693:3:91;28586:19;727:1366:92;;28586:19:91;;:::i;:::-;727:1366:92;;28616:21:91;;;;;;727:1366:92;;-1:-1:-1;;;28616:21:91;;-1:-1:-1;;;;;727:1366:92;;;;28616:21:91;;727:1366:92;;;1220:14:3;;727:1366:92;28616:21:91;727:1366:92;1220:14:3;727:1366:92;28616:21:91;;;;;;;;;;727:1366:92;;;;;;;;:::i;:::-;28704:12:91;727:1366:92;;28680:61:91;1220:14:3;28680:61:91;;727:1366:92;28817:38:91;;;;;727:1366:92;;-1:-1:-1;;;28817:38:91;;-1:-1:-1;;;727:1366:92;28817:38:91;;727:1366:92;28817:38:91;727:1366:92;;;28817:38:91;;;;;;;;;;;;;;;727:1366:92;-1:-1:-1;28865:22:91;540:42:1;727:1366:92;;-1:-1:-1;;;28865:53:91;;540:42:1;;727:1366:92;28865:53:91;;727:1366:92;540:42:1;;;;;;;;727:1366:92;;;28865:53:91;;727:1366:92;;540:42:1;;727:1366:92;;;;;28865:53:91;;;;;;;;727:1366:92;28928:14:91;;;;;;727:1366:92;;;;;;;;;;;;;28928:14:91;;;;;;;;;;727:1366:92;;;28928:14:91;;;;;:::i;:::-;727:1366:92;;28928:14:91;727:1366:92;;;;;;28928:14:91;727:1366:92;;;;;;;;;28928:14:91;727:1366:92;;;28865:53:91;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;727:1366:92;;;;;;;;;28817:38:91;;;;;;;;:::i;:::-;727:1366:92;;28817:38:91;;;;;;727:1366:92;;;;28817:38:91;727:1366:92;;;;;;;;;28616:21:91;;;;;;;:::i;:::-;;;;;;727:1366:92;;;;;;;;;28616:21:91;727:1366:92;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;;:::i;:::-;;;;;;;;;29464:9:91;3693:3;35553:42;727:1366:92;;;;:::i;:::-;-1:-1:-1;35580:14:91;727:1366:92;-1:-1:-1;;;;;727:1366:92;;;;;35553:42:91;:::i;:::-;727:1366:92;;;;;;;;;;;;;;;;;;;;;;29522:45:91;;;727:1366:92;29522:45:91;;727:1366:92;29522:45:91;727:1366:92;;;;;;;;:::i;:::-;29522:45:91;;;;;;;;;;;;;;727:1366:92;;;;;;;;;;;;;;;;;29522:45:91;29659:29;727:1366:92;;29659:29:91;;;:::i;:::-;727:1366:92;;;;;;;;;;29707:22:91;;;;;;;;;;;;;727:1366:92;29707:26:91;;727:1366:92;;29769:25:91;727:1366:92;;-1:-1:-1;29810:9:91;727:1366:92;-1:-1:-1;;;;;727:1366:92;;29854:36:91;;;:::i;:::-;29810:81;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;29810:81:91;;727:1366:92;;29810:81:91;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81:91;;;;;;;;;;29765:281;;;29522:45;29765:281;;;29464:9;3693:3;727:1366:92;;35553:42:91;;-1:-1:-1;;;;;727:1366:92;;;:::i;:::-;-1:-1:-1;35580:14:91;727:1366:92;-1:-1:-1;;;;;727:1366:92;;35553:42:91;:::i;:::-;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;30148:45:91;;;727:1366:92;30148:45:91;;727:1366:92;;;;;;:::i;:::-;30148:45:91;;;;;;;;;;;;29765:281;727:1366:92;;;30148:74:91;727:1366:92;;30317:66:91;727:1366:92;;30256:51:91;727:1366:92;;30264:22:91;30256:51;:::i;:::-;30325:32;30317:66;:::i;727:1366:92:-;;;-1:-1:-1;;;727:1366:92;;29522:45:91;727:1366:92;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;30148:45:91;;;;29522;30148;;29522;30148;;;;;;29522;30148;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;727:1366:92;30148:45:91;;727:1366:92;;;;30148:45:91;;;-1:-1:-1;30148:45:91;;;727:1366:92;;;;;;;;;;29810:81:91;;;;;:::i;:::-;727:1366:92;;29810:81:91;;;;727:1366:92;;;29765:281:91;29912:24;;;;;;;;727:1366:92;29912:24:91;29908:138;;29765:281;;;29522:45;29765:281;;;;;;;29908:138;29952:9;727:1366:92;;;;-1:-1:-1;;;;;727:1366:92;;29986:36:91;;;:::i;:::-;29952:83;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;29952:83:91;;727:1366:92;;29952:83:91;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;29952:83:91;;;;;;;;;29522:45;29952:83;;;;;;29908:138;;;;;;;;;;29952:83;;;;:::i;:::-;;;;;727:1366:92;;;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;29522:45:91;727:1366:92;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;29707:22:91;;;29522:45;29707:22;;29522:45;29707:22;;;;;;29522:45;29707:22;;;:::i;:::-;;;727:1366:92;;;;540:42:1;29707:22:91;;;727:1366:92;;;;29707:22:91;;;-1:-1:-1;29707:22:91;;;727:1366:92;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;29522:45:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;29522:45:91;;;;;;;-1:-1:-1;29522:45:91;;;727:1366:92;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;:::i;:::-;15025:1:91;727:1366:92;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;15068:178:91;;727:1366:92;;;;;:::i;:::-;;15068:178:91;;727:1366:92;15038:218:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;15297:180:91;;727:1366:92;;;;;:::i;:::-;;15297:180:91;;727:1366:92;15267:220:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;15528:178:91;;727:1366:92;;;;;:::i;:::-;;15528:178:91;;727:1366:92;15498:218:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;15757:182:91;727:1366:92;15757:182:91;;727:1366:92;;;;;;15905:19:91;727:1366:92;;;;;;15905:19:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15757:182:91;;727:1366:92;15727:222:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;15990:190:91;727:1366:92;15990:190:91;;727:1366:92;;;;;;16142:23:91;727:1366:92;;;;;;16142:23:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15990:190:91;;727:1366:92;15960:230:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;16213:42:91;;;;;;;;;-1:-1:-1;;;;;16213:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;16201:54;727:1366:92;;-1:-1:-1;;;;;;727:1366:92;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;16213:42:91;-1:-1:-1;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;727:1366:92;;;;;;;;;2130:18:8;727:1366:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;35553:42:91;727:1366:92;;:::i;:::-;;;:::i;35553:42:91:-;727:1366:92;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;:::i;:::-;;;30474:26:91;;;;;727:1366:92;;-1:-1:-1;;;30474:26:91;;-1:-1:-1;;;;;727:1366:92;;;;30474:26:91;;727:1366:92;;;;30474:26:91;727:1366:92;;;30474:26:91;;;;;;;;;;;;;727:1366:92;30510:56:91;;;;;;;727:1366:92;;;;;;;;;;;;;;;30510:56:91;;727:1366:92;30510:56:91;;727:1366:92;;;;;;30510:56:91;;;;;;;;;;;727:1366:92;3693:3:91;;30576:9;3693:3;727:1366:92;30576:56:91;;;;;727:1366:92;;;3053:7:91;727:1366:92;;;;;;;;;;;;30576:56:91;;727:1366:92;;30576:56:91;;727:1366:92;;;;;;:::i;:::-;30576:56:91;;;;;;;;;;727:1366:92;;30576:56:91;;;;:::i;:::-;727:1366:92;;30576:56:91;727:1366:92;30576:56:91;727:1366:92;;;30510:56:91;;;;:::i;:::-;727:1366:92;;30510:56:91;;;;;727:1366:92;;;30474:26:91;;;;:::i;:::-;727:1366:92;;30474:26:91;;;;;727:1366:92;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;:::i;:::-;;;16453:29:91;;;;;;;;-1:-1:-1;;;;;16453:29:91;;;;;;;;;;;;;;;;;;;;727:1366:92;;16524:28:91;;;;;;;;-1:-1:-1;;;;;16524:28:91;;;;;;;;;;;;;;;;;;;727:1366:92;;16593:27:91;;;;;;;;-1:-1:-1;;;;;16593:27:91;;;;;;;;;;;;;;;;;;;;727:1366:92;;16664:28:91;;;;;;;;-1:-1:-1;;;;;16664:28:91;;;;;;;;;;;;;;;;;;;727:1366:92;;16747:35:91;;;;;;;;-1:-1:-1;;;;;16747:35:91;;;;;;;;;;;;;;;;;;;;727:1366:92;;16820:23:91;;;;;;;;-1:-1:-1;;;;;16820:23:91;;;;;;;;;;;;;;;;;;;;727:1366:92;;16878:21:91;;;;;;;;-1:-1:-1;;;;;16878:21:91;;;;;;;;;;;;;;;;;;;;16950:26;;:::i;:::-;727:1366:92;;;;;;;:::i;:::-;;;;;;;;;17017:189:91;727:1366:92;17017:189:91;;727:1366:92;;;;;;17173:18:91;727:1366:92;;;;;;17173:18:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17017:189:91;;727:1366:92;16987:229:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;17257:187:91;;727:1366:92;;;;;:::i;:::-;;17257:187:91;;727:1366:92;17227:227:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;17495:187:91;727:1366:92;17495:187:91;;727:1366:92;;;;;;17650:17:91;727:1366:92;;;;;;17650:17:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17495:187:91;;727:1366:92;17465:227:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;17733:191:91;727:1366:92;17733:191:91;;727:1366:92;;;;;;17890:19:91;727:1366:92;;;;;;17890:19:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17733:191:91;;727:1366:92;17703:231:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;17975:199:91;727:1366:92;17975:199:91;;727:1366:92;;;;;;18136:23:91;727:1366:92;;;;;;18136:23:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17975:199:91;;727:1366:92;17945:239:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;18225:187:91;;727:1366:92;;;;;:::i;:::-;;18225:187:91;;727:1366:92;18195:227:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;18463:187:91;;727:1366:92;;;;;:::i;:::-;;18463:187:91;;727:1366:92;18433:227:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;18700:42:91;;;;;;;;;-1:-1:-1;;;;;18700:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;727:1366:92;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16878:21:91;727:1366:92;;;;;;;;;16878:21:91;-1:-1:-1;;;727:1366:92;;;;;;;;16820:23:91;-1:-1:-1;;;727:1366:92;;;;;;;;16747:35:91;-1:-1:-1;;;727:1366:92;;;;;;;;16664:28:91;-1:-1:-1;;;727:1366:92;;;;;;;;16593:27:91;-1:-1:-1;;;727:1366:92;;;;;;;;16453:29:91;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;24348:21:91;;;;;-1:-1:-1;;;;;24348:21:91;;;;;;;;;;;;;;;;;;;;;;;727:1366:92;;24413:23:91;;;;;-1:-1:-1;;;;;24413:23:91;;;;;;;;;;;;;;;;;;;;;;;;727:1366:92;;24483:25:91;;;;;-1:-1:-1;;;;;24483:25:91;;;;;;;;;;;;;;;;;;;;;;;;727:1366:92;;24553:23:91;;;;;-1:-1:-1;;;;;24553:23:91;;;;;;;;;;;;;;;;;;;;;;;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;24617:200:91;727:1366:92;24617:200:91;;727:1366:92;;;;;;24779:23:91;727:1366:92;;;;;;24779:23:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24617:200:91;;727:1366:92;24587:240:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;24867:198:91;727:1366:92;24867:198:91;;727:1366:92;;;;;;25027:23:91;727:1366:92;;;;;;25027:23:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24867:198:91;;727:1366:92;24837:238:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;25115:206:91;727:1366:92;25115:206:91;;727:1366:92;;;;;;25278:28:91;727:1366:92;;;;;;25278:28:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25115:206:91;;727:1366:92;25085:246:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;25371:212:91;727:1366:92;25371:212:91;;727:1366:92;;;;;;25534:34:91;727:1366:92;;;;;;25534:34:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25371:212:91;;727:1366:92;25341:252:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;25646:45:91;;;;;;;;;;-1:-1:-1;;;;;25646:45:91;;;;;;727:1366:92;25646:45:91;;;727:1366:92;25646:45:91;;;;727:1366:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;25646:45:91;;;;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;;;25706:49:91;;727:1366:92;25706:49:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24348:21:91;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;727:1366:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;727:1366:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;-1:-1:-1;727:1366:92;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;-1:-1:-1;727:1366:92;;;;;;;;;-1:-1:-1;727:1366:92;;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;;;;:::i;:::-;;1671:64:2;;727:1366:92;;;;;;;6628:51:16;;727:1366:92;;6628:51:16;;;;;;;;727:1366:92;6628:51:16;;;727:1366:92;;;;;;:::i;:::-;;;;;;;6628:51:16;234:9:40;;6628:51:16;;;;;;:::i;:::-;727:1366:92;392:159:16;131:42;392:159;;;727:1366:92;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;727:1366:92;19669:43:91;;;;727:1366:92;;;19735:29:91;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;;;;;;;727:1366:92;19735:29:91;;;;;;727:1366:92;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;19723:41:91;727:1366:92;;;19723:41:91;727:1366:92;;;19785:28:91;;;;;;;;;;;;;;;;;;;;;;727:1366:92;19785:28:91;;;;;727:1366:92;;;19774:39:91;727:1366:92;;;19774:39:91;727:1366:92;;;19834:27:91;;;;;;;;;;;;;;;;;;;;;;727:1366:92;19834:27:91;;;;;727:1366:92;;;19823:38:91;727:1366:92;;;19823:38:91;727:1366:92;;;19888:35:91;;;;;;;;;;;;;;;;;;;;;;727:1366:92;19888:35:91;;;;;727:1366:92;;;19871:52:91;727:1366:92;;;19871:52:91;727:1366:92;;;19946:28:91;;;;;;;;;;;;;;;;;;;;;;727:1366:92;19946:28:91;;;;;727:1366:92;;;19933:41:91;727:1366:92;;;19933:41:91;727:1366:92;;;19995:21:91;;;;;;;;;;;;;;;;;;;;;;727:1366:92;19995:21:91;;;;;727:1366:92;;;19984:32:91;727:1366:92;;;19984:32:91;727:1366:92;;;20037:23:91;;;;;;;;;;;;;;;;;;;;;;727:1366:92;20037:23:91;;;;;;21606:229;727:1366:92;21918:657:91;727:1366:92;;;;;;;;;;;;;20026:34:91;727:1366:92;;;20026:34:91;727:1366:92;20111:26:91;;:::i;:::-;3693:3;;;19723:41;3693:3;727:1366:92;;;;;;;:::i;:::-;;;;20178:191:91;;;727:1366:92;;;:::i;:::-;;20178:191:91;;727:1366:92;20148:231:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19774:39;3693:3;727:1366:92;;;;;;;:::i;:::-;;;;20420:189:91;;;727:1366:92;;;:::i;:::-;;20420:189:91;;727:1366:92;20390:229:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19823:38;3693:3;727:1366:92;;;;;;;:::i;:::-;;;;20660:189:91;;;727:1366:92;;;:::i;:::-;;20660:189:91;;727:1366:92;20630:229:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19933:41;3693:3;727:1366:92;;;;;;;:::i;:::-;;;;20900:193:91;;;727:1366:92;;;:::i;:::-;;20900:193:91;;727:1366:92;20870:233:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19871:52;3693:3;727:1366:92;;;;;;;:::i;:::-;;;;21144:201:91;;;727:1366:92;;;:::i;:::-;;21144:201:91;;727:1366:92;21114:241:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19984:32;3693:3;727:1366:92;;;;;;;:::i;:::-;;;;21396:189:91;;;727:1366:92;;;:::i;:::-;;21396:189:91;;727:1366:92;21366:229:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;21636:189:91;;;727:1366:92;;;:::i;:::-;;21636:189:91;;727:1366:92;21606:229:91;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;727:1366:92;;;;;;;;:::i;:::-;;;21918:657:91;;;727:1366:92;;21918:657:91;;;:::i;:::-;727:1366:92;;;21918:657:91;;727:1366:92;;21918:657:91;;;3693:3;727:1366:92;;21918:657:91;;3693:3;727:1366:92;;21918:657:91;;3251:7;727:1366:92;;21918:657:91;;3251:7;;21918:657;;;727:1366:92;22395:2:91;21918:657;;;3251:7;727:1366:92;21918:657:91;;;3251:7;21918:657;;;727:1366:92;;;21858:727:91;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;21858:727:91;;;;;727:1366:92;;;;21846:739:91;727:1366:92;;;21846:739:91;727:1366:92;;;19723:41:91;727:1366:92;;;19723:41:91;727:1366:92;;;19823:38:91;727:1366:92;;;19823:38:91;727:1366:92;;;19933:41:91;727:1366:92;;;19933:41:91;727:1366:92;;;19871:52:91;727:1366:92;;;19871:52:91;727:1366:92;;;19774:39:91;727:1366:92;;;19774:39:91;727:1366:92;;;19984:32:91;727:1366:92;;;19984:32:91;727:1366:92;20026:34:91;727:1366:92;;;20026:34:91;727:1366:92;;;21858:727:91;727:1366:92;;;;;;;;;21858:727:91;-1:-1:-1;;;727:1366:92;;;;;;;;20037:23:91;727:1366:92;;;;;;;;;;;19735:29:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;26191:12:91;;;;26199:3;26191:12;;727:1366:92;26191:12:91;;727:1366:92;;1220:14:3;;727:1366:92;26191:12:91;;;;;;;;;;;;;;;;727:1366:92;26169:35:91;;;;:::i;:::-;26153:51;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;26252:12:91;;;26260:3;727:1366:92;26252:12:91;;727:1366:92;26252:12:91;;;;;;;;;;;;;;;727:1366:92;26230:35:91;;;;:::i;:::-;26214:51;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;26313:12:91;;;;26321:3;26313:12;;727:1366:92;26313:12:91;;727:1366:92;26313:12:91;;;;;;;;;;;;;;;727:1366:92;26291:35:91;;;;:::i;:::-;26275:51;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;3693:3:91;;;;727:1366:92;;26390:12:91;;;;;727:1366:92;26390:12:91;;727:1366:92;26390:12:91;;;;;;;;;;;;;;;;727:1366:92;26375:27:91;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;;;;26427:12:91;;;26260:3;727:1366:92;26427:12:91;;727:1366:92;26427:12:91;727:1366:92;26427:12:91;727:1366:92;26427:12:91;;;;;;;;;;;;727:1366:92;26412:27:91;;;;;:::i;:::-;727:1366:92;;;;;;26464:12:91;;;;727:1366:92;26464:12:91;;727:1366:92;26464:12:91;;;;;;;;;;;;;;;;727:1366:92;26449:27:91;;;;;:::i;:::-;727:1366:92;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;3693:3:91;727:1366:92;;26549:12:91;;;;;727:1366:92;26549:12:91;;727:1366:92;26549:12:91;;;;;;;;;;;;;;;;727:1366:92;26541:24:91;;;;;;727:1366:92;;-1:-1:-1;;;26541:24:91;;;727:1366:92;;;;26541:24:91;;727:1366:92;;1220:14:3;;;727:1366:92;;;;;26541:24:91;727:1366:92;1220:14:3;727:1366:92;26541:24:91;;;;;;;;;;;;;727:1366:92;;;;;26583:12:91;;;26260:3;727:1366:92;26583:12:91;;727:1366:92;26583:12:91;;;;;;;;;;;;;;;;727:1366:92;26575:24:91;;;;;;727:1366:92;;;26575:24:91;;;;727:1366:92;;26575:24:91;;727:1366:92;1220:14:3;;;;727:1366:92;26575:24:91;;1220:14:3;26575:24:91;;;;;;;;;;;;;;727:1366:92;;;;;26617:12:91;;;727:1366:92;26617:12:91;;727:1366:92;26617:12:91;;;;;;;;;;;;;;;;727:1366:92;26609:24:91;;;;;;727:1366:92;;;;26609:24:91;;;727:1366:92;;26609:24:91;;727:1366:92;1220:14:3;;;;727:1366:92;26609:24:91;;1220:14:3;26609:24:91;;;;;;;;;;;;;;727:1366:92;26644:16:91;;;;;26696;26644;;:::i;:::-;727:1366:92;26670:16:91;;;;:::i;:::-;727:1366:92;26696:16:91;:::i;:::-;727:1366:92;;;;;;;:::i;:::-;26780:12:91;727:1366:92;;26756:61:91;;;;727:1366:92;26828:33:91;;;;;727:1366:92;;-1:-1:-1;;;26828:33:91;;-1:-1:-1;;;727:1366:92;26828:33:91;;727:1366:92;;;;;;;;;;26828:33:91;;;;;;;;;;;;;;727:1366:92;-1:-1:-1;26871:22:91;540:42:1;727:1366:92;;-1:-1:-1;;;26871:53:91;;540:42:1;;727:1366:92;26871:53:91;;727:1366:92;540:42:1;;;;;;;;727:1366:92;;;;;540:42:1;;727:1366:92;;;;26871:53:91;;;;;;;;727:1366:92;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26871:53:91;;;;;;;;;;;;;:::i;:::-;;;;26828:33;;;;;;;;;:::i;:::-;727:1366:92;;26828:33:91;;;;;;;26609:24;;;;:::i;:::-;727:1366:92;;26609:24:91;;;;;727:1366:92;;;26617:12:91;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26617:12:91;;;;;;;;26575:24;;;;:::i;:::-;727:1366:92;;26575:24:91;;;;727:1366:92;;;;26575:24:91;727:1366:92;;;;;;;;;26575:24:91;727:1366:92;;;26583:12:91;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26583:12:91;;;;;;;;26541:24;;;;:::i;:::-;727:1366:92;;26541:24:91;;;;26549:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26549:12:91;;;;;;;;;26464;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26464:12:91;;;;;;;;26427;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26427:12:91;;;;;;;;26390;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26390:12:91;;;;;;;;;26313;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26291:35:91;1220:14:3;;:::i;:::-;26313:12:91;;;;;;;26252;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26230:35:91;1220:14:3;;:::i;:::-;26252:12:91;;;;;;;26191;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26169:35:91;1220:14:3;;:::i;:::-;26191:12:91;;;;;;;727:1366:92;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;:::i;:::-;;;:::i;:::-;34850:14:91;727:1366:92;-1:-1:-1;;;;;727:1366:92;;34081:38:91;;;;;727:1366:92;;-1:-1:-1;;;34081:38:91;;727:1366:92;;34081:38:91;;727:1366:92;;;;;;;;;;;34081:38:91;;;;;;;;727:1366:92;34212:64:91;;727:1366:92;34212:64:91;;;:::i;:::-;727:1366:92;;;;;-1:-1:-1;;;34319:25:91;;727:1366:92;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;34319:25:91;;;;;;;;;;;727:1366:92;;;;;;;;;;;;;;34376:11:91;;;727:1366:92;34376:11:91;;727:1366:92;;;;;;:::i;:::-;34376:11:91;:9;;:11;;;;;;;;;;;;;;727:1366:92;-1:-1:-1;727:1366:92;;-1:-1:-1;;;34391:43:91;;727:1366:92;;;;;;34391:43:91;;727:1366:92;;34391:43:91;;;:::i;:::-;;34376:9;;34391:43;;;;;;;727:1366:92;34391:43:91;727:1366:92;34391:43:91;;;;;727:1366:92;;;;;;;;;;;34391:52:91;;;727:1366:92;34391:52:91;;727:1366:92;;;;;;:::i;:::-;34391:52:91;34376:9;;34391:52;;;;;;;;;;727:1366:92;34376:67:91;;727:1366:92;;34604:46:91;34660:49;34554:19;34546:48;727:1366:92;;34554:19:91;;34546:48;:::i;:::-;34612:17;34604:46;:::i;:::-;34668:15;34660:49;:::i;:::-;727:1366:92;;;;;-1:-1:-1;;;27226:25:91;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;27226:25:91;;;;;;;:48;:25;;;;;;;727:1366:92;-1:-1:-1;727:1366:92;;-1:-1:-1;;;27226:48:91;;727:1366:92;;;;;;27226:48:91;;;:::i;:::-;;34376:9;;27226:48;;;;;;;;;;;727:1366:92;27308:29:91;;727:1366:92;27308:29:91;;;:::i;:::-;727:1366:92;;;;;;:::i;:::-;;;;27183:173:91;;727:1366:92;;;;;;-1:-1:-1;;;27421:25:91;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;27421:25:91;;;;;;;:45;:25;;;;;;;-1:-1:-1;727:1366:92;;-1:-1:-1;;;27421:45:91;;727:1366:92;;;;;;27421:45:91;;;:::i;:::-;;34376:9;;27421:45;;;;;;;;;;;727:1366:92;27500:26:91;;;;:::i;:::-;727:1366:92;;;;;;:::i;:::-;;;;27378:167:91;;727:1366:92;;;;;;;:::i;:::-;1671:64:2;;;727:1366:92;;;;;;:::i;:::-;;;;27147:608:91;;727:1366:92;;;27147:608:91;;727:1366:92;27147:608:91;;;;;3693:3;27147:608;;;;;;234:9:40;727:1366:92;27147:608:91;;;;727:1366:92;27147:608:91;;3251:7;27147:608;;;727:1366:92;;;;;;;:::i;:::-;;;27115:679:91;727:1366:92;27115:679:91;;234:9:40;727:1366:92;;;;;;:::i;:::-;;;;;;234:9:40;;727:1366:92;234:9:40;;;;27856:18:91;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;28104:33:91;;;;;727:1366:92;;-1:-1:-1;;;28104:33:91;;-1:-1:-1;;;727:1366:92;28104:33:91;;727:1366:92;;;;;;;;;;;;28104:33:91;;;;;;;;234:9:40;-1:-1:-1;;28147:20:91;234:9:40;-1:-1:-1;;;;;727:1366:92;;28147:45:91;;;;;727:1366:92;;;;;;;;;;;28147:45:91;;727:1366:92;234:9:40;;28147:45:91;727:1366:92;;28147:45:91;;234:9:40;727:1366:92;;;;;;;;234:9:40;727:1366:92;;234:9:40;;;;;;;;;;;;;;;;;28147:45:91;;;;;;;;;;;;;;;;;;;234:9:40;727:1366:92;;;;2508:20:60;;727:1366:92;2508:20:60;;;727:1366:92;;;;;;;;;:::i;:::-;2508:20:60;234:9:40;;2508:20:60;;;;;;:::i;:::-;727:1366:92;2498:31:60;;727:1366:92;;;;;;28147:45:91;;;;;:::i;:::-;727:1366:92;;28147:45:91;;;234:9:40;;;;;;;;;727:1366:92;234:9:40;;;;;;;;;;;;;;;:::i;:::-;727:1366:92;;234:9:40;;;;;;;;;;;;;;;28104:33:91;;;;:::i;:::-;727:1366:92;;28104:33:91;;;;234:9:40;727:1366:92;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;727:1366:92;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27421:45:91;27500:26;27421:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;27226:48;727:1366:92;27226:48:91;;;27308:29;27226:48;;;;;;;;;;:::i;:::-;;;;;727:1366:92;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;34391:52:91;;;;727:1366:92;34391:52:91;;727:1366:92;34391:52:91;;;;;;727:1366:92;34391:52:91;;;:::i;:::-;;;727:1366:92;;;;540:42:1;34391:52:91;;;;;;;-1:-1:-1;34391:52:91;;:43;;;;;;;;;;;;;:::i;:::-;;;;34376:11;;;;;727:1366:92;34376:11:91;;727:1366:92;34376:11:91;;;;;;727:1366:92;34376:11:91;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;;34391:43:91;34376:11;;;;;-1:-1:-1;34376:11:91;;34319:25;727:1366:92;34319:25:91;;;;727:1366:92;34319:25:91;;;;;;;;;;:::i;:::-;;;;;;34081:38;727:1366:92;34081:38:91;;;34212:64;34081:38;;:::i;:::-;;;;;;727:1366:92;;;;;;;;;;;;;;;;:::i;:::-;;;;23178:21:91;;;;;-1:-1:-1;;;;;23178:21:91;;;;;;;;;;;;;;;;;;;;;;;;;727:1366:92;;23241:28:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:1366:92;;;;;;:::i;:::-;23344:1:91;727:1366:92;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;;23387:201:91;;;727:1366:92;;;;;23549:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23387:201:91;;727:1366:92;23357:241:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;;:::i;:::-;;;;23639:187:91;;;;727:1366:92;;;:::i;:::-;;23639:187:91;;727:1366:92;23609:227:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3651:2:91;727:1366:92;;;;;;3251:7:91;727:1366:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;7896:27:91;;;;:::i;:::-;727:1366:92;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;8047:58;;;727:1366:92;;;;;;:::i;:::-;;;;7986:700:91;;;727:1366:92;7986:700:91;727:1366:92;7986:700:91;;3251:7;3053;727:1366:92;7986:700:91;;727:1366:92;;;7986:700:91;;3693:3;3110:2;727:1366:92;7986:700:91;;3693:3;3001:2;727:1366:92;7986:700:91;;3251:7;3606:3;727:1366:92;7986:700:91;;3251:7;7986:700;;727:1366:92;7986:700:91;;3251:7;7986:700;;3251:7;7986:700;;727:1366:92;;;23973:42:91;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;727:1366:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;727:1366:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;727:1366:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;727:1366:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;-1:-1:-1;727:1366:92;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;-1:-1:-1;727:1366:92;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;35553:42:91;3693:3;29464:9;3693:3;727:1366:92;;;:::i;:::-;;;35580:14:91;727:1366:92;;35553:42:91;;:::i;:::-;727:1366:92;;;;;;;;;;;;;;;;;;29522:45:91;;;;;;;;;;;;;;727:1366:92;29522:45:91;;727:1366:92;;;;;:::i;:::-;29522:45:91;;;;;;;;;727:1366:92;29522:45:91;;;727:1366:92;;;;;;;;;;;;;;;;;;29659:29:91;;;727:1366:92;29659:29:91;;:::i;:::-;727:1366:92;;;;;;;;;;29707:22:91;;;;;;;;;727:1366:92;29707:22:91;;;727:1366:92;29707:26:91;;727:1366:92;;29854:36:91;727:1366:92;29810:9:91;727:1366:92;;29854:36:91;;:::i;:::-;29810:81;;;;;;727:1366:92;;;;;;;;;;;;;;;;;29810:81:91;;727:1366:92;;29810:81:91;;727:1366:92;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81:91;;;;;;;;;;;727:1366:92;29810:81:91;;;;;727:1366:92;3693:3:91;35553:42;3693:3;29464:9;3693:3;727:1366:92;;;:::i;:::-;;;35580:14:91;727:1366:92;;35553:42:91;;:::i;:::-;727:1366:92;;;;;;;;;;;;;30148:45:91;;;;;;;;;;727:1366:92;30148:45:91;;727:1366:92;;;;;:::i;:::-;30148:45:91;;;;;;;;;727:1366:92;30148:45:91;;;727:1366:92;30148:74:91;;727:1366:92;;30264:22:91;30317:66;30264:22;;;30256:51;30264:22;;30256:51;:::i;727:1366:92:-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;30148:45:91;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;30148:45:91;;;;;;;;29810:81;;;;:::i;:::-;;;;727:1366:92;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;29707:22:91;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;29707:22:91;;;;;;;;727:1366:92;;;;;;;;;;;;29522:45:91;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;29522:45:91;;;;;;;;;727:1366:92;;;;;;;;;;;;;2592:26:8;727:1366:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;727:1366:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;34850:14:91;727:1366:92;;:::i;:::-;34850:14:91;727:1366:92;-1:-1:-1;;;;;727:1366:92;;;;34850:14:91;:::i;727:1366:92:-;;;;;;;-1:-1:-1;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;727:1366:92;19669:43:91;;727:1366:92;;;19735:29:91;;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;727:1366:92;19735:29:91;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;19723:41:91;727:1366:92;;;19723:41:91;727:1366:92;;;19785:28:91;;;;;;;-1:-1:-1;;;;;19785:28:91;;;;;;;;;;;;727:1366:92;19785:28:91;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;19774:39:91;727:1366:92;;;19774:39:91;727:1366:92;;;19834:27:91;;;;;;;-1:-1:-1;;;;;19834:27:91;;;;;;;;;;;;727:1366:92;19834:27:91;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;19823:38:91;727:1366:92;;;19823:38:91;727:1366:92;;;19888:35:91;;;;;;;-1:-1:-1;;;;;19888:35:91;;;;;;;;;;;;727:1366:92;19888:35:91;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;19871:52:91;727:1366:92;;;19871:52:91;727:1366:92;;;19946:28:91;;;;;;;-1:-1:-1;;;;;19946:28:91;;;;;;;;;;;;727:1366:92;19946:28:91;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;19933:41:91;727:1366:92;;;19933:41:91;727:1366:92;;;19995:21:91;;;;;;;-1:-1:-1;;;;;19995:21:91;;;;;;;;;;;;727:1366:92;19995:21:91;;;;;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;19984:32:91;727:1366:92;;;19984:32:91;727:1366:92;;;20037:23:91;;;;;;;-1:-1:-1;;;;;20037:23:91;;;;;;;;;;;;727:1366:92;20037:23:91;;;;;;20026:34;727:1366:92;;-1:-1:-1;;;;;;727:1366:92;-1:-1:-1;;;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;20111:26:91;;:::i;:::-;19723:41;3693:3;727:1366:92;;;;;;-1:-1:-1;;;;;727:1366:92;;;;:::i;:::-;;;;;20178:191:91;;727:1366:92;;;:::i;:::-;;20178:191:91;;727:1366:92;20148:231:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19774:39:91;3693:3;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;:::i;:::-;;;;;20420:189:91;;727:1366:92;;;:::i;:::-;;20420:189:91;;727:1366:92;20390:229:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19823:38:91;3693:3;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;:::i;:::-;;;;;20660:189:91;;727:1366:92;;;:::i;:::-;;20660:189:91;;727:1366:92;20630:229:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19933:41:91;3693:3;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;:::i;:::-;;;;;20900:193:91;;727:1366:92;;;:::i;:::-;;20900:193:91;;727:1366:92;20870:233:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19871:52:91;3693:3;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;:::i;:::-;;;;;21144:201:91;;727:1366:92;;;:::i;:::-;;21144:201:91;;727:1366:92;21114:241:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19984:32:91;3693:3;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;:::i;:::-;;;;;21396:189:91;;727:1366:92;;;:::i;:::-;;21396:189:91;;727:1366:92;21366:229:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;;21636:189:91;;727:1366:92;;;:::i;:::-;;21636:189:91;;727:1366:92;21606:229:91;;;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;727:1366:92;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;21918:657:91;;727:1366:92;21918:657:91;727:1366:92;;;21918:657:91;;;:::i;:::-;727:1366:92;;;21918:657:91;;727:1366:92;;21918:657:91;;;3693:3;727:1366:92;;21918:657:91;;3693:3;727:1366:92;21918:657:91;;;3251:7;727:1366:92;;21918:657:91;;3251:7;;727:1366:92;21918:657:91;;727:1366:92;22395:2:91;21918:657;;;3251:7;727:1366:92;;;;:::i;:::-;;;21918:657:91;;;3251:7;21918:657;;;727:1366:92;;;21858:727:91;;;;;;;;;;-1:-1:-1;;;;;21858:727:91;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;21858:727:91;;;;;21846:739;727:1366:92;;-1:-1:-1;;;;;727:1366:92;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;19723:41:91;727:1366:92;;;;;;;;19823:38:91;727:1366:92;;;;;;;;19933:41:91;727:1366:92;;;;;;;;19871:52:91;727:1366:92;;;;;;;;19774:39:91;727:1366:92;;;;;;;;19984:32:91;727:1366:92;;;;;;;;20026:34:91;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;:::i;:::-;28446:19:91;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;28475:48::-;;28322:3;28586:19;727:1366:92;;;;;:::i;:::-;28463:1:91;727:1366:92;;;;1220:14:3;;;3693:3:91;28586:19;:::i;727:1366:92:-;;;;;;;;;;;;;;;;;;2747:18:8;727:1366:92;;;;;;;;;2747:18:8;727:1366:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;727:1366:92;;;;;;;;;3040:16:8;727:1366:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33131:24:91;;;727:1366:92;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;33131:24:91;;;;;;;;;;;727:1366:92;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;33169:9:91;727:1366:92;;33231:10:91;;33209:33;33231:10;33209:33;:::i;:::-;33169:74;;;;;;727:1366:92;;;;;;;;;;;;;;33169:74:91;;;727:1366:92;33169:74:91;;727:1366:92;;;;;;:::i;:::-;33169:74:91;727:1366:92;;;33169:74:91;;;;;;;;;;;;727:1366:92;;;;;;;;;;33261:24:91;;;;;;;;;;;;;;;;;727:1366:92;;;;;;33261:41:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;33261:24:91;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;;;;;:::i;:::-;33261:24:91;;;;;;;;;33169:74;;;;;;;:::i;:::-;727:1366:92;;33169:74:91;;;;;;727:1366:92;;;;;;;;;;;;33131:24:91;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;;;;:::i;:::-;33131:24:91;;;;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25870:11:91;25898:12;25893:73;25919:3;727:1366:92;;;;25912:5:91;;;;;727:1366:92;;-1:-1:-1;727:1366:92;;;25938:17:91;727:1366:92;;;;;;;;;;;;25938:17:91;;:::i;:::-;25919:3;727:1366:92;;;;;;;;25898:12:91;;;727:1366:92;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;;;;;;;;25912:5:91;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;:::i;:::-;33464:21:91;;727:1366:92;;;:::i;:::-;-1:-1:-1;35580:14:91;727:1366:92;-1:-1:-1;;;;;727:1366:92;;35553:42:91;;727:1366:92;;35553:42:91;;:::i;:::-;727:1366:92;;;;;;;33564:9:91;727:1366:92;;33564:40:91;;;;;;727:1366:92;;;;;;;;;;;;33564:40:91;;;;;;;;;;727:1366:92;33638:21:91;;35553:42;33638:21;;727:1366:92;;;:::i;:::-;;35580:14:91;727:1366:92;;35553:42:91;;:::i;:::-;727:1366:92;;;;;;;;;;;;;;33744:43:91;727:1366:92;;33820:70:91;33843:26;;;;:::i;:::-;33828:41;33820:70;:::i;727:1366:92:-;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;33564:40:91;;;35553:42;33564:40;;;:::i;:::-;;;;;727:1366:92;;;;;;;;;;;;;;;;;;2272:16:8;727:1366:92;;;;;;;;;2272:16:8;727:1366:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1557:1;727:1366;;;;3693:3:91;;;;3368:2;1569:31:92;;;:::i;:::-;727:1366;;;;;;;:::i;:::-;3693:3:91;;;727:1366:92;1720:46;;727:1366;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;3368:2:91;727:1366:92;1660:400;;727:1366;3251:7:91;727:1366:92;1660:400;;727:1366;3001:2:91;727:1366:92;1660:400;;3251:7:91;727:1366:92;1660:400;;727:1366;3606:3:91;727:1366:92;1660:400;;3251:7:91;-1:-1:-1;;;;;727:1366:92;949:41;;;:::i;:::-;727:1366;-1:-1:-1;;;;;727:1366:92;;;;932:58;727:1366;;;932:58;727:1366;;;;;;;;;;;1065:56;727:1366;;;1065:56;727:1366;;;1131:66;727:1366;;;1131:66;727:1366;;;1207:60;727:1366;;;1207:60;727:1366;;;1277:53;727:1366;;;1277:53;727:1366;3001:2:91;727:1366:92;;;3001:2:91;727:1366:92;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;3251:7:91;727:1366:92;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;234:9:40;;;727:1366:92;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;-1:-1:-1;;;;;727:1366:92;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;727:1366:92;;;;234:9:40;727:1366:92;-1:-1:-1;;727:1366:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;234:9:40;727:1366:92;-1:-1:-1;;727:1366:92;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;727:1366:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;:::i;:::-;;;;;;;:::o;1671:64:2:-;;727:1366:92;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;727:1366:92;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;727:1366:92;;;;;;;2196:43:2;;;;727:1366:92;;;1671:64:2;;;727:1366:92;1671:64:2;;727:1366:92;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;727:1366:92;;2086:175:2;;1671:64;2196:43;2086:175;;727:1366:92;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;727:1366:92;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;727:1366:92;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;727:1366:92;1671:64:2;;;727:1366:92;;;;;;;23794:17:91;727:1366:92;;;;;;;;;;;23794:17:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;18380:17:91;727:1366:92;;;;;;;;;;;18380:17:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;18618:17:91;727:1366:92;;;;;;;;;;;18618:17:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;15444:18:91;727:1366:92;;;;;;;;;;;15444:18:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;15674:17:91;727:1366:92;;;;;;;;;;;15674:17:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;21059:19:91;727:1366:92;;;;;;;;;;;21059:19:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;21307:23:91;727:1366:92;;;;;;;;;;;21307:23:91;-1:-1:-1;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;-1:-1:-1;727:1366:92;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;727:1366:92;;-1:-1:-1;727:1366:92;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;16974:1:91;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;23620:1:91;727:1366:92;;;;;;;:::o;:::-;;;26286:1:91;727:1366:92;;;;;;;:::o;:::-;;;25352:1:91;727:1366:92;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;18206:1:91;727:1366:92;;;;;;;:::o;:::-;;;18444:1:91;727:1366:92;;;;;;;:::o;:::-;;;12845:1:91;727:1366:92;;;;;;;:::o;:::-;;;13113:1:91;727:1366:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;11484:3185:91;;727:1366:92;;11644:24:91;;;;;;;-1:-1:-1;;;;;11644:24:91;;;;;;;;;;;;;;;;;;727:1366:92;;11718:24:91;;;;;;;-1:-1:-1;;;;;11718:24:91;;;;;;;;;;;;11644;11718;;;;;727:1366:92;;11796:26:91;;;;;;;-1:-1:-1;;;;;11796:26:91;;;;;;;;;;;;11644:24;11796:26;;;;;;727:1366:92;;11874:25:91;;;;;;;-1:-1:-1;;;;;11874:25:91;;;;;;;;;;;;11644:24;11874:25;;;;;727:1366:92;;11940:25:91;;;;;;;-1:-1:-1;;;;;11940:25:91;;;;;;;;;;;;11644:24;11940:25;;;;;727:1366:92;;12003:24:91;;;;;;;-1:-1:-1;;;;;12003:24:91;;;;;;;;;;;;11644;12003;;;;;;727:1366:92;;12071:27:91;;;;;;;-1:-1:-1;;;;;12071:27:91;;;;;;;;;;;;11644:24;12071:27;;;;;;727:1366:92;;12133:21:91;;;;;;;-1:-1:-1;;;;;12133:21:91;;;;;;;;;;;;11644:24;12133:21;;;;;;727:1366:92;;12191:23:91;;;;;;;-1:-1:-1;;;;;12191:23:91;;;;;;;;;;;;11644:24;12191:23;;;;;;727:1366:92;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;12291:1:91;727:1366:92;;11644:24:91;727:1366:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;12336:211:91;;727:1366:92;;;;;;12503:29:91;727:1366:92;;;;;;12503:29:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12336:211:91;;727:1366:92;12304:253:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;12600:211:91;;727:1366:92;;;;;;12767:29:91;727:1366:92;;;;;;12767:29:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12600:211:91;;727:1366:92;12568:253:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;12864:215:91;;727:1366:92;;;;;;13033:31:91;727:1366:92;;;;;;13033:31:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12864:215:91;;727:1366:92;12832:257:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;13132:213:91;;727:1366:92;;;;;;13300:30:91;727:1366:92;;;;;;13300:30:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13132:213:91;;727:1366:92;13100:255:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;13398:189:91;;727:1366:92;;;;;;13554:18:91;727:1366:92;;;;;;13554:18:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13398:189:91;;727:1366:92;13366:231:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;13640:187:91;;727:1366:92;;;;;;13795:17:91;727:1366:92;;;;;;13795:17:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13640:187:91;;727:1366:92;13608:229:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;13880:193:91;;727:1366:92;;;;;;14038:20:91;727:1366:92;;;;;;14038:20:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13880:193:91;;727:1366:92;13848:235:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;14126:186:91;;727:1366:92;;;;;;14281:16:91;727:1366:92;;;;;;14281:16:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14126:186:91;;727:1366:92;14094:228:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;727:1366:92;14365:187:91;;727:1366:92;;;;;;14520:17:91;727:1366:92;;;;;;14520:17:91;11644:24;727:1366:92;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14365:187:91;;727:1366:92;14333:229:91;;;:::i;:::-;;;;;:::i;:::-;;727:1366:92;;14590:40:91;;;;;;;;;-1:-1:-1;;;;;14590:40:91;;;;;727:1366:92;14590:40:91;;;;727:1366:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11644:24:91;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;14590:40:91;;11644:24;14590:40;;;;;14573:57;727:1366:92;;-1:-1:-1;;;;;;727:1366:92;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;11484:3185:91:o;727:1366:92:-;234:9:40;;;;;;727:1366:92;234:9:40;727:1366:92;;234:9:40;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3251:7:91:-;727:1366:92;;;;;;3251:7:91;:::o;4539:185:76:-;-1:-1:-1;727:1366:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;727:1366:92;;-1:-1:-1;727:1366:92;4618:99:76;;727:1366:92;4539:185:76;:::o;727:1366:92:-;;;;;;;:::i;:::-;1671:64:2;727:1366:92;;-1:-1:-1;727:1366:92;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;28463:1:91;727:1366:92;;;-1:-1:-1;727:1366:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;727:1366:92;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;234:9:40;-1:-1:-1;;540:42:1;;;;;727:1366:92;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;727:1366:92;;:::i;:::-;;695:118:61;727:1366:92;;;;;-1:-1:-1;;;;;727:1366:92;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;727:1366:92;;;;;;:::i;:::-;3110:2:91;3693:3;;480:2:61;779:22;719:84;;480:2;;;719:84;;;727:1366:92;;;;;695:118:61;;;779:22;695:118;;;480:2;;727:1366:92;480:2:61;;;727:1366:92;480:2:61;;727:1366:92;480:2:61;;;;727:1366:92;480:2:61;;;;;;;;;:::i;:::-;695:118;234:9:40;;695:118:61;;;;;;:::i;:::-;727:1366:92;;;;;:::i;:::-;438:1:61;3251:7:91;;779:22:61;837:51;;727:1366:92;581:314:61;:::o;727:1366:92:-;;;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;727:1366:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;727:1366:92;;;;;;:::o;234:9:40:-;727:1366:92;;;;;;:::i;:::-;234:9:40;727:1366:92;;:::i;:::-;234:9:40;;;727:1366:92;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;727:1366:92;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;727:1366:92;-1:-1:-1;;;;;234:9:40;;;;727:1366:92;234:9:40;;;727:1366:92;;;;234:9:40;;;;727:1366:92;234:9:40;;;727:1366:92;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;727:1366:92;234:9:40;;727:1366:92;;234:9:40;;727:1366:92;234:9:40;:::o;727:1366:92:-;;;;:::o;:::-;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;;33903:813:91;-1:-1:-1;;;;;727:1366:92;;;;;;34081:38:91;;;;;727:1366:92;;;;;;;;;;;34081:38:91;;34117:1;727:1366:92;34117:1:91;34081:38;;;;;;;;;;727:1366:92;34081:38:91;;;;;;;;;;;;;;33903:813;34212:64;;;;;;:::i;:::-;727:1366:92;;;;;;;;;;;;;;;;;;;;;34319:25:91;;;;;;;;;;;;;33903:813;34376:9;;727:1366:92;;;;;;34376:11:91;;;;727:1366:92;;;;;34376:11:91;;;;;;727:1366:92;;;;;;:::i;:::-;34376:11:91;;;;;;;;;;;;;;;;;33903:813;-1:-1:-1;727:1366:92;;-1:-1:-1;;;34391:43:91;;727:1366:92;;;;;;34391:43:91;;727:1366:92;34391:43:91;;;;:::i;:::-;;;;;;;;;;;;727:1366:92;34391:43:91;;;;;;;;33903:813;727:1366:92;;;34391:52:91;;;;;;;;;;;;727:1366:92;;;;;;:::i;:::-;34391:52:91;;;;;;;;;;;;33903:813;34376:67;;727:1366:92;;34554:19:91;;;;34546:48;34604:46;34554:19;34660:49;34554:19;;;34546:48;:::i;727:1366:92:-;;-1:-1:-1;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;727:1366:92;;;;;;-1:-1:-1;727:1366:92;34391:52:91;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;34391:52:91;;;;;;;;;;727:1366:92;;;;;;;;;;34391:43:91;;;;;;;;;;;;;;:::i;:::-;;;;;;727:1366:92;;;;;;;;;34376:11:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;;;34391:43:91;34376:11;;;;;;;;727:1366:92;;;;;;;;;34319:25:91;;;;;;;;;;;;;;:::i;:::-;;;;;;727:1366:92;;;;;;;;;34081:38:91;;;34212:64;34081:38;;:::i;:::-;;;;;727:1366:92;;;;;;;;;34878:541:91;;727:1366:92;;:::i;:::-;-1:-1:-1;35042:44:91;727:1366:92;;-1:-1:-1;;;;;727:1366:92;;;-1:-1:-1;;;;;;727:1366:92;;;;;;;;35096:42:91;727:1366:92;;;;;;;;;;;-1:-1:-1;;;35176:25:91;;35096:42;;-1:-1:-1;;;;727:1366:92;;35176:25:91;;727:1366:92;;35176:25:91;;;;;;;;;;;:55;:25;;;;;34878:541;-1:-1:-1;727:1366:92;;-1:-1:-1;;;35176:55:91;;727:1366:92;35176:40:91;;727:1366:92;;;;;35176:25:91;:55;;;:::i;:::-;;;;;;;;;;;;;;;34878:541;727:1366:92;;;;;;;;;;;;;;;35282:17:91;;;;;;;;;35176:25;35282:17;;727:1366:92;;;;;;:::i;:::-;35282:17:91;;;;;;;;;;;;;;;;34878:541;727:1366:92;;;;;;;;;;;35265:35:91;;35176:25;35265:35;;727:1366:92;35265:35:91;;;;;;;;;;;34878:541;35319:9;;;727:1366:92;35319:9:91;;;727:1366:92;;;-1:-1:-1;;;;;35344:19:91;;;;;727:1366:92;;35365:27:91;;;;727:1366:92;;35394:17:91;;727:1366:92;35311:101:91;;;;;34878:541;:::o;35265:35::-;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;;;;;;;-1:-1:-1;;;;;727:1366:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;727:1366:92;;;;;540:42:1;727:1366:92;;;;;;;540:42:1;727:1366:92;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;727:1366:92;;;;;:::i;:::-;;;;;35265:35:91;;;;;;727:1366:92;;;;;;;;;;;35282:17:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;727:1366:92;;;;540:42:1;;;35282:17:91;;;;;;;;;727:1366:92;;;;;;;;;35176:55:91;727:1366:92;35176:55:91;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;727:1366:92;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":92519,"length":20},{"start":98438,"length":20},{"start":102952,"length":20},{"start":110303,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":64839,"length":20},{"start":67020,"length":20},{"start":67594,"length":20},{"start":91396,"length":20},{"start":113307,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":56049,"length":20},{"start":56820,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":148712,"length":20},{"start":161349,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":77057,"length":20},{"start":91034,"length":20},{"start":112809,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":12533,"length":20},{"start":12613,"length":20},{"start":12697,"length":20},{"start":12878,"length":20},{"start":13043,"length":20},{"start":31151,"length":20},{"start":31869,"length":20},{"start":40851,"length":20},{"start":55718,"length":20},{"start":63068,"length":20},{"start":63656,"length":20},{"start":64529,"length":20},{"start":66587,"length":20},{"start":66874,"length":20},{"start":67424,"length":20},{"start":70474,"length":20},{"start":72873,"length":20},{"start":72970,"length":20},{"start":74065,"length":20},{"start":76726,"length":20},{"start":76828,"length":20},{"start":77158,"length":20},{"start":77243,"length":20},{"start":77344,"length":20},{"start":77429,"length":20},{"start":78916,"length":20},{"start":78994,"length":20},{"start":79099,"length":20},{"start":79255,"length":20},{"start":79805,"length":20},{"start":80046,"length":20},{"start":80127,"length":20},{"start":85600,"length":20},{"start":90103,"length":20},{"start":90779,"length":20},{"start":96374,"length":20},{"start":96593,"length":20},{"start":96673,"length":20},{"start":96854,"length":20},{"start":97035,"length":20},{"start":110485,"length":20},{"start":112545,"length":20},{"start":132488,"length":20},{"start":154242,"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\":[{\"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/IntegrationTestPresets.sol\":\"L1GatewayActorDiamond\"},\"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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"test/IntegrationTestPresets.sol\":{\"keccak256\":\"0x0a02df29b6b1e34e1b95e61e76b485ff7a9220fadb2af1c084b9b14dba835f2f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f3ba412cd91ccbc76e45d94add104e5434670ea2ed3f4850612d4fc51284ef4b\",\"dweb:/ipfs/QmaRYUH4DdMAGRxeFBqHPKXdXGchYE86aCxFTZnjMZkB65\"]},\"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":[{"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/IntegrationTestPresets.sol":"L1GatewayActorDiamond"},"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestPresets.sol":{"keccak256":"0x0a02df29b6b1e34e1b95e61e76b485ff7a9220fadb2af1c084b9b14dba835f2f","urls":["bzz-raw://f3ba412cd91ccbc76e45d94add104e5434670ea2ed3f4850612d4fc51284ef4b","dweb:/ipfs/QmaRYUH4DdMAGRxeFBqHPKXdXGchYE86aCxFTZnjMZkB65"],"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/IntegrationTestPresets.sol","id":56101,"exportedSymbols":{"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IPCAddress":[50157],"IntegrationTestBase":[55675],"L1GatewayActorDiamond":[55824],"L2GatewayActorDiamond":[55956],"L3GatewayActorDiamond":[56100],"Subnet":[50044],"SubnetID":[50030],"Validator":[50164],"XnetMessagingFacet":[40144]},"nodeType":"SourceUnit","src":"46:4974:92","nodes":[{"id":55677,"nodeType":"PragmaDirective","src":"46:23:92","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55682,"nodeType":"ImportDirective","src":"71:82:92","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":55678,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55679,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"89:6:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55680,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"97:10:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55681,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"109:9:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55684,"nodeType":"ImportDirective","src":"154:67:92","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":55683,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"162:15:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55686,"nodeType":"ImportDirective","src":"222:71:92","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":55685,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"230:17:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55688,"nodeType":"ImportDirective","src":"294:57:92","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":55687,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"302:14:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55690,"nodeType":"ImportDirective","src":"352:73:92","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":55689,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"360:18:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55692,"nodeType":"ImportDirective","src":"426:75:92","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":55691,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"434:19:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55694,"nodeType":"ImportDirective","src":"502:79:92","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":55693,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"510:21:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55696,"nodeType":"ImportDirective","src":"582:80:92","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":55695,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"590:18:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55698,"nodeType":"ImportDirective","src":"663:62:92","nodes":[],"absolutePath":"test/IntegrationTestBase.sol","file":"./IntegrationTestBase.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":55676,"symbolAliases":[{"foreign":{"id":55697,"name":"IntegrationTestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"671:19:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55824,"nodeType":"ContractDefinition","src":"727:1366:92","nodes":[{"id":55773,"nodeType":"FunctionDefinition","src":"787:611:92","nodes":[],"body":{"id":55772,"nodeType":"Block","src":"828:570:92","nodes":[],"statements":[{"assignments":[55708],"declarations":[{"constant":false,"id":55708,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"878:19:92","nodeType":"VariableDeclaration","scope":55772,"src":"838:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55707,"nodeType":"UserDefinedTypeName","pathNode":{"id":55706,"name":"GatewayDiamond.ConstructorParams","nameLocations":["838:14:92","853:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"838:32:92"},"referencedDeclaration":35883,"src":"838:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55709,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[55823],"referencedDeclaration":55823,"src":"900:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"838:84:92"},{"expression":{"id":55716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55712,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"932:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55714,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55708,"src":"970:19:92","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":55713,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"949:20:92","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":55715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"949:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"932:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55717,"nodeType":"ExpressionStatement","src":"932:58:92"},{"expression":{"id":55725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55718,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"1001:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55722,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1039:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1031:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55720,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:92","typeDescriptions":{}}},"id":55723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1031:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55719,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1012:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"1001:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55726,"nodeType":"ExpressionStatement","src":"1001:54:92"},{"expression":{"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55727,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"1065:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55731,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1105:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1097:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55729,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:92","typeDescriptions":{}}},"id":55732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1097:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55728,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1077:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"1065:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55735,"nodeType":"ExpressionStatement","src":"1065:56:92"},{"expression":{"id":55743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55736,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"1131:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55740,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1181:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1173:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55738,"name":"address","nodeType":"ElementaryTypeName","src":"1173:7:92","typeDescriptions":{}}},"id":55741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55737,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1154:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":55742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"1131:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":55744,"nodeType":"ExpressionStatement","src":"1131:66:92"},{"expression":{"id":55752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55745,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"1207:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55749,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1251:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1243:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55747,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:92","typeDescriptions":{}}},"id":55750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55746,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1221:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":55751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1221:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"1207:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":55753,"nodeType":"ExpressionStatement","src":"1207:60:92"},{"expression":{"id":55761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55754,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"1277:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55758,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1314:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1306:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55756,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:92","typeDescriptions":{}}},"id":55759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1306:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55755,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"1288:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":55760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"1277:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":55762,"nodeType":"ExpressionStatement","src":"1277:53:92"},{"expression":{"id":55770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55763,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"1340:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55767,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1375:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1367:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55765,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:92","typeDescriptions":{}}},"id":55768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55764,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"1351:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":55769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"1340:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":55771,"nodeType":"ExpressionStatement","src":"1340:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"796:5:92","overrides":{"id":55702,"nodeType":"OverrideSpecifier","overrides":[],"src":"819:8:92"},"parameters":{"id":55701,"nodeType":"ParameterList","parameters":[],"src":"801:2:92"},"returnParameters":{"id":55703,"nodeType":"ParameterList","parameters":[],"src":"828:0:92"},"scope":55824,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55823,"nodeType":"FunctionDefinition","src":"1404:687:92","nodes":[],"body":{"id":55822,"nodeType":"Block","src":"1509:582:92","nodes":[],"statements":[{"assignments":[55784],"declarations":[{"constant":false,"id":55784,"mutability":"mutable","name":"path","nameLocation":"1536:4:92","nodeType":"VariableDeclaration","scope":55822,"src":"1519:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55782,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55783,"nodeType":"ArrayTypeName","src":"1519:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55790,"initialValue":{"arguments":[{"hexValue":"31","id":55788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1557:1:92","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":55787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1543:13:92","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":55785,"name":"address","nodeType":"ElementaryTypeName","src":"1547:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55786,"nodeType":"ArrayTypeName","src":"1547:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1519:40:92"},{"expression":{"id":55795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55791,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55784,"src":"1569:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55793,"indexExpression":{"hexValue":"30","id":55792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1574:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1569:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55794,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"1579:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1569:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55796,"nodeType":"ExpressionStatement","src":"1569:31:92"},{"assignments":[55801],"declarations":[{"constant":false,"id":55801,"mutability":"mutable","name":"params","nameLocation":"1651:6:92","nodeType":"VariableDeclaration","scope":55822,"src":"1611:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55800,"nodeType":"UserDefinedTypeName","pathNode":{"id":55799,"name":"GatewayDiamond.ConstructorParams","nameLocations":["1611:14:92","1626:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1611:32:92"},"referencedDeclaration":35883,"src":"1611:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55819,"initialValue":{"arguments":[{"arguments":[{"id":55805,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"1736:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55806,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55784,"src":"1760:4:92","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":55804,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"1720:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1730:4:92","1753:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"1720:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55808,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"1801:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55809,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"1848:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55810,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"1903:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":55815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:92","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":55814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1963:15:92","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":55812,"nodeType":"UserDefinedTypeName","pathNode":{"id":55811,"name":"Validator","nameLocations":["1967:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"1967:9:92"},"referencedDeclaration":50164,"src":"1967:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":55813,"nodeType":"ArrayTypeName","src":"1967:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1963:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":55817,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"2018:31:92","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":55802,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"1660:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":55803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1675:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"1660:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":55818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1707:11:92","1780:19:92","1840:6:92","1883:18:92","1944:17:92","1995:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"1660:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1611:449:92"},{"expression":{"id":55820,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55801,"src":"2078:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":55779,"id":55821,"nodeType":"Return","src":"2071:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"1413:20:92","overrides":{"id":55775,"nodeType":"OverrideSpecifier","overrides":[],"src":"1450:8:92"},"parameters":{"id":55774,"nodeType":"ParameterList","parameters":[],"src":"1433:2:92"},"returnParameters":{"id":55779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55823,"src":"1468:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55777,"nodeType":"UserDefinedTypeName","pathNode":{"id":55776,"name":"GatewayDiamond.ConstructorParams","nameLocations":["1468:14:92","1483:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1468:32:92"},"referencedDeclaration":35883,"src":"1468:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1467:41:92"},"scope":55824,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55699,"name":"IntegrationTestBase","nameLocations":["761:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"761:19:92"},"id":55700,"nodeType":"InheritanceSpecifier","src":"761:19:92"}],"canonicalName":"L1GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55824,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L1GatewayActorDiamond","nameLocation":"736:21:92","scope":56101,"usedErrors":[]},{"id":55956,"nodeType":"ContractDefinition","src":"2095:1409:92","nodes":[{"id":55899,"nodeType":"FunctionDefinition","src":"2155:611:92","nodes":[],"body":{"id":55898,"nodeType":"Block","src":"2196:570:92","nodes":[],"statements":[{"assignments":[55834],"declarations":[{"constant":false,"id":55834,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"2246:19:92","nodeType":"VariableDeclaration","scope":55898,"src":"2206:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55833,"nodeType":"UserDefinedTypeName","pathNode":{"id":55832,"name":"GatewayDiamond.ConstructorParams","nameLocations":["2206:14:92","2221:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"2206:32:92"},"referencedDeclaration":35883,"src":"2206:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55835,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[55955],"referencedDeclaration":55955,"src":"2268:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2206:84:92"},{"expression":{"id":55842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55838,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2300:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55840,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"2338:19:92","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":55839,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"2317:20:92","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":55841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"2300:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55843,"nodeType":"ExpressionStatement","src":"2300:58:92"},{"expression":{"id":55851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55844,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"2369:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55848,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2407:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2399:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55846,"name":"address","nodeType":"ElementaryTypeName","src":"2399:7:92","typeDescriptions":{}}},"id":55849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2399:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55845,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"2380:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"2369:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55852,"nodeType":"ExpressionStatement","src":"2369:54:92"},{"expression":{"id":55860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55853,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"2433:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55857,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2473:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2465:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55855,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:92","typeDescriptions":{}}},"id":55858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55854,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"2445:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2445:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"2433:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55861,"nodeType":"ExpressionStatement","src":"2433:56:92"},{"expression":{"id":55869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55862,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"2499:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55866,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2549:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2541:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55864,"name":"address","nodeType":"ElementaryTypeName","src":"2541:7:92","typeDescriptions":{}}},"id":55867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2541:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55863,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"2522:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":55868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2522:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"2499:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":55870,"nodeType":"ExpressionStatement","src":"2499:66:92"},{"expression":{"id":55878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55871,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"2575:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55875,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2619:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2611:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55873,"name":"address","nodeType":"ElementaryTypeName","src":"2611:7:92","typeDescriptions":{}}},"id":55876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2611:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55872,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"2589:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":55877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2589:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"2575:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":55879,"nodeType":"ExpressionStatement","src":"2575:60:92"},{"expression":{"id":55887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55880,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"2645:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55884,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2682:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2674:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55882,"name":"address","nodeType":"ElementaryTypeName","src":"2674:7:92","typeDescriptions":{}}},"id":55885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2674:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55881,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2656:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":55886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"2645:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":55888,"nodeType":"ExpressionStatement","src":"2645:53:92"},{"expression":{"id":55896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55889,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"2708:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55893,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2743:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2735:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55891,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:92","typeDescriptions":{}}},"id":55894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55890,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2719:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":55895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"2708:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":55897,"nodeType":"ExpressionStatement","src":"2708:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"2164:5:92","overrides":{"id":55828,"nodeType":"OverrideSpecifier","overrides":[],"src":"2187:8:92"},"parameters":{"id":55827,"nodeType":"ParameterList","parameters":[],"src":"2169:2:92"},"returnParameters":{"id":55829,"nodeType":"ParameterList","parameters":[],"src":"2196:0:92"},"scope":55956,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55955,"nodeType":"FunctionDefinition","src":"2772:730:92","nodes":[],"body":{"id":55954,"nodeType":"Block","src":"2877:625:92","nodes":[],"statements":[{"assignments":[55910],"declarations":[{"constant":false,"id":55910,"mutability":"mutable","name":"path","nameLocation":"2904:4:92","nodeType":"VariableDeclaration","scope":55954,"src":"2887:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55908,"name":"address","nodeType":"ElementaryTypeName","src":"2887:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55909,"nodeType":"ArrayTypeName","src":"2887:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55916,"initialValue":{"arguments":[{"hexValue":"32","id":55914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2925:1:92","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":55913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2911:13:92","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":55911,"name":"address","nodeType":"ElementaryTypeName","src":"2915:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55912,"nodeType":"ArrayTypeName","src":"2915:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2887:40:92"},{"expression":{"id":55921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55917,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"2937:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55919,"indexExpression":{"hexValue":"30","id":55918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2942:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2937:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55920,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"2947:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2937:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55922,"nodeType":"ExpressionStatement","src":"2937:31:92"},{"expression":{"id":55927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55923,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"2978:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55925,"indexExpression":{"hexValue":"31","id":55924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2978:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55926,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"2988:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2978:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55928,"nodeType":"ExpressionStatement","src":"2978:33:92"},{"assignments":[55933],"declarations":[{"constant":false,"id":55933,"mutability":"mutable","name":"params","nameLocation":"3062:6:92","nodeType":"VariableDeclaration","scope":55954,"src":"3022:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55932,"nodeType":"UserDefinedTypeName","pathNode":{"id":55931,"name":"GatewayDiamond.ConstructorParams","nameLocations":["3022:14:92","3037:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"3022:32:92"},"referencedDeclaration":35883,"src":"3022:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55951,"initialValue":{"arguments":[{"arguments":[{"id":55937,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"3147:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55938,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"3171:4:92","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":55936,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"3131:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3141:4:92","3164:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"3131:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55940,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3212:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55941,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"3259:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55942,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"3314:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":55947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3390:1:92","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":55946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3374:15:92","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":55944,"nodeType":"UserDefinedTypeName","pathNode":{"id":55943,"name":"Validator","nameLocations":["3378:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"3378:9:92"},"referencedDeclaration":50164,"src":"3378:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":55945,"nodeType":"ArrayTypeName","src":"3378:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":55948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":55949,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"3429:31:92","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":55934,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"3071:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":55935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3086:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"3071:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":55950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3118:11:92","3191:19:92","3251:6:92","3294:18:92","3355:17:92","3406:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"3071:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3022:449:92"},{"expression":{"id":55952,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55933,"src":"3489:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":55905,"id":55953,"nodeType":"Return","src":"3482:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"2781:20:92","overrides":{"id":55901,"nodeType":"OverrideSpecifier","overrides":[],"src":"2818:8:92"},"parameters":{"id":55900,"nodeType":"ParameterList","parameters":[],"src":"2801:2:92"},"returnParameters":{"id":55905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55955,"src":"2836:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55903,"nodeType":"UserDefinedTypeName","pathNode":{"id":55902,"name":"GatewayDiamond.ConstructorParams","nameLocations":["2836:14:92","2851:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"2836:32:92"},"referencedDeclaration":35883,"src":"2836:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"2835:41:92"},"scope":55956,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55825,"name":"IntegrationTestBase","nameLocations":["2129:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"2129:19:92"},"id":55826,"nodeType":"InheritanceSpecifier","src":"2129:19:92"}],"canonicalName":"L2GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55956,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L2GatewayActorDiamond","nameLocation":"2104:21:92","scope":56101,"usedErrors":[]},{"id":56100,"nodeType":"ContractDefinition","src":"3506:1513:92","nodes":[{"id":55964,"nodeType":"VariableDeclaration","src":"3566:54:92","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_3","nameLocation":"3583:23:92","scope":56100,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55959,"name":"address","nodeType":"ElementaryTypeName","src":"3566:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3331","id":55962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3617:2:92","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":55961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3609:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55960,"name":"address","nodeType":"ElementaryTypeName","src":"3609:7:92","typeDescriptions":{}}},"id":55963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3609:11:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":56037,"nodeType":"FunctionDefinition","src":"3627:611:92","nodes":[],"body":{"id":56036,"nodeType":"Block","src":"3668:570:92","nodes":[],"statements":[{"assignments":[55972],"declarations":[{"constant":false,"id":55972,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"3718:19:92","nodeType":"VariableDeclaration","scope":56036,"src":"3678:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55971,"nodeType":"UserDefinedTypeName","pathNode":{"id":55970,"name":"GatewayDiamond.ConstructorParams","nameLocations":["3678:14:92","3693:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"3678:32:92"},"referencedDeclaration":35883,"src":"3678:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55975,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55973,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[56099],"referencedDeclaration":56099,"src":"3740:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3740:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3678:84:92"},{"expression":{"id":55980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55976,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3772:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55978,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55972,"src":"3810:19:92","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":55977,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"3789:20:92","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":55979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"3772:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55981,"nodeType":"ExpressionStatement","src":"3772:58:92"},{"expression":{"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55982,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"3841:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55986,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3879:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55984,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:92","typeDescriptions":{}}},"id":55987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55983,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"3852:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"3841:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55990,"nodeType":"ExpressionStatement","src":"3841:54:92"},{"expression":{"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55991,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"3905:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55995,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3945:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3937:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55993,"name":"address","nodeType":"ElementaryTypeName","src":"3937:7:92","typeDescriptions":{}}},"id":55996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3937:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55992,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"3917:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3917:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"3905:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55999,"nodeType":"ExpressionStatement","src":"3905:56:92"},{"expression":{"id":56007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56000,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"3971:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56004,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4021:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4013:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56002,"name":"address","nodeType":"ElementaryTypeName","src":"4013:7:92","typeDescriptions":{}}},"id":56005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4013:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56001,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"3994:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":56006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"3971:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":56008,"nodeType":"ExpressionStatement","src":"3971:66:92"},{"expression":{"id":56016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56009,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"4047:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56013,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4091:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4083:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56011,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:92","typeDescriptions":{}}},"id":56014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4083:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56010,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"4061:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":56015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"4047:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":56017,"nodeType":"ExpressionStatement","src":"4047:60:92"},{"expression":{"id":56025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56018,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"4117:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56022,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4154:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4146:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56020,"name":"address","nodeType":"ElementaryTypeName","src":"4146:7:92","typeDescriptions":{}}},"id":56023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56019,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"4128:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":56024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4128:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"4117:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":56026,"nodeType":"ExpressionStatement","src":"4117:53:92"},{"expression":{"id":56034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56027,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"4180:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56031,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4215:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4207:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56029,"name":"address","nodeType":"ElementaryTypeName","src":"4207:7:92","typeDescriptions":{}}},"id":56032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4207:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56028,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"4191:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":56033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"4180:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":56035,"nodeType":"ExpressionStatement","src":"4180:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"3636:5:92","overrides":{"id":55966,"nodeType":"OverrideSpecifier","overrides":[],"src":"3659:8:92"},"parameters":{"id":55965,"nodeType":"ParameterList","parameters":[],"src":"3641:2:92"},"returnParameters":{"id":55967,"nodeType":"ParameterList","parameters":[],"src":"3668:0:92"},"scope":56100,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56099,"nodeType":"FunctionDefinition","src":"4244:773:92","nodes":[],"body":{"id":56098,"nodeType":"Block","src":"4349:668:92","nodes":[],"statements":[{"assignments":[56048],"declarations":[{"constant":false,"id":56048,"mutability":"mutable","name":"path","nameLocation":"4376:4:92","nodeType":"VariableDeclaration","scope":56098,"src":"4359:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56046,"name":"address","nodeType":"ElementaryTypeName","src":"4359:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56047,"nodeType":"ArrayTypeName","src":"4359:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":56054,"initialValue":{"arguments":[{"hexValue":"33","id":56052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4397:1:92","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":56051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4383:13:92","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":56049,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56050,"nodeType":"ArrayTypeName","src":"4387:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4359:40:92"},{"expression":{"id":56059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56055,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4409:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56057,"indexExpression":{"hexValue":"30","id":56056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4414:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4409:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56058,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"4419:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4409:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56060,"nodeType":"ExpressionStatement","src":"4409:31:92"},{"expression":{"id":56065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56061,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4450:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56063,"indexExpression":{"hexValue":"31","id":56062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4455:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4450:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56064,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"4460:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4450:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56066,"nodeType":"ExpressionStatement","src":"4450:33:92"},{"expression":{"id":56071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56067,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4493:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56069,"indexExpression":{"hexValue":"31","id":56068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4498:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4493:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56070,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"4503:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4493:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56072,"nodeType":"ExpressionStatement","src":"4493:33:92"},{"assignments":[56077],"declarations":[{"constant":false,"id":56077,"mutability":"mutable","name":"params","nameLocation":"4577:6:92","nodeType":"VariableDeclaration","scope":56098,"src":"4537:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":56076,"nodeType":"UserDefinedTypeName","pathNode":{"id":56075,"name":"GatewayDiamond.ConstructorParams","nameLocations":["4537:14:92","4552:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"4537:32:92"},"referencedDeclaration":35883,"src":"4537:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":56095,"initialValue":{"arguments":[{"arguments":[{"id":56081,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"4662:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":56082,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4686:4:92","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":56080,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"4646:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":56083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4656:4:92","4679:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"4646:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":56084,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"4727:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":56085,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"4774:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56086,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"4829:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":56091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4905:1:92","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":56090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4889:15:92","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":56088,"nodeType":"UserDefinedTypeName","pathNode":{"id":56087,"name":"Validator","nameLocations":["4893:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"4893:9:92"},"referencedDeclaration":50164,"src":"4893:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":56089,"nodeType":"ArrayTypeName","src":"4893:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":56092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4889:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":56093,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"4944:31:92","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":56078,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"4586:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":56079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4601:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"4586:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4633:11:92","4706:19:92","4766:6:92","4809:18:92","4870:17:92","4921:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"4586:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4537:449:92"},{"expression":{"id":56096,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56077,"src":"5004:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":56043,"id":56097,"nodeType":"Return","src":"4997:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"4253:20:92","overrides":{"id":56039,"nodeType":"OverrideSpecifier","overrides":[],"src":"4290:8:92"},"parameters":{"id":56038,"nodeType":"ParameterList","parameters":[],"src":"4273:2:92"},"returnParameters":{"id":56043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56099,"src":"4308:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":56041,"nodeType":"UserDefinedTypeName","pathNode":{"id":56040,"name":"GatewayDiamond.ConstructorParams","nameLocations":["4308:14:92","4323:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"4308:32:92"},"referencedDeclaration":35883,"src":"4308:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"4307:41:92"},"scope":56100,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55957,"name":"IntegrationTestBase","nameLocations":["3540:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"3540:19:92"},"id":55958,"nodeType":"InheritanceSpecifier","src":"3540:19:92"}],"canonicalName":"L3GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56100,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L3GatewayActorDiamond","nameLocation":"3515:21:92","scope":56101,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":92} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestPresets.sol/L2GatewayActorDiamond.json b/contracts/.out/IntegrationTestPresets.sol/L2GatewayActorDiamond.json new file mode 100644 index 000000000..524eacb2e --- /dev/null +++ b/contracts/.out/IntegrationTestPresets.sol/L2GatewayActorDiamond.json @@ -0,0 +1 @@ +{"abi":[{"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$__5af490811563000012e85760009163000012bb575b508051906001600160401b03821163000012a55768010000000000000000821163000012a557603d5482603d55808310630000123d575b5060200190603d60005260206000208160031c9160005b83811063000011e9575060071981169003806300001190575b6040516202c92290816300002f218239f35b9260009360005b81811063000011b057505050015538808080630000117e565b909194602063000011dd600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300001197565b6000805b6008811063000012065750838201556001016300001165565b959060206300001232600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960163000011ed565b603d6000526020600020600780850160031c8201920160031c0190601c8460021b16806300001288575b505b818110630000127a5750630000114e565b600081556001016300001269565b600019908183019182549160200360031b1c169055386300001267565b634e487b7160e01b600052604160045260246000fd5b63000012e091503d806000833e63000012d681836300002e5b565b8101906300002e80565b386300001117565b6040513d6000823e3d90fd5b9260009360005b818403811063000013195750505060031c01553880808063000010ac565b90919460206300001346600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910163000012fb565b6000805b60088110630000136f5750838201556001016300001090565b94906020630000139b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001356565b603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e600284901b601c1680630000140e575b50600780850160031c8201920160031c01905b81811063000014005750630000107d565b6000815560010163000013ef565b60001990816007870160031c8401019182549160200360031b1c1690553863000013dc565b630000144e91503d806000833e63000012d681836300002e5b565b386300001046565b9260009360005b81811063000014795750505060031c0155388080806300000fdd565b909194602063000014a6600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101630000145d565b6000805b6008811063000014cf5750838201556001016300000fc1565b9490602063000014fb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000014b6565b603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d600284901b601c1680630000156e575b50600780850160031c8201920160031c01905b818110630000156057506300000fae565b60008155600101630000154f565b60001990816007870160031c8401019182549160200360031b1c16905538630000153c565b63000015ae91503d806000833e63000012d681836300002e5b565b386300000f77565b60009260005b60071983168303811063000015dc57505060031c01553880806300000f02565b909360206300001608600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000015bc565b6000805b6008811063000016305750838201556001016300000ee7565b94906020630000165c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001617565b60396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3600284901b601c168063000016d0575b506007840160031c81015b6007830160031c8201811063000016c25750506300000ed4565b6000815560010163000016a8565b60001990816007870160031c8401019182549160200360031b1c16905538630000169d565b630000171091503d806000833e63000012d681836300002e5b565b386300000e9d565b60009260005b600719831683038110630000173e57505060031c01553880806300000e28565b90936020630000176a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000171e565b6000805b6008811063000017925750838201556001016300000e0d565b9490602063000017be600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001779565b603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e600284901b601c16806300001832575b506007840160031c81015b6007830160031c8201811063000018245750506300000dfa565b60008155600101630000180a565b60001990816007870160031c8401019182549160200360031b1c1690553863000017ff565b630000187291503d806000833e63000012d681836300002e5b565b386300000dc3565b60009260005b60071983168303811063000018a057505060031c01553880806300000d59565b9093602063000018cc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001880565b6000805b6008811063000018f45750838201556001016300000d3e565b949060206300001920600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000018db565b60386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199600284901b601c16806300001994575b506007840160031c81015b6007830160031c8201811063000019865750506300000d2b565b60008155600101630000196c565b60001990816007870160031c8401019182549160200360031b1c169055386300001961565b63000019d491503d806000833e63000012d681836300002e5b565b386300000cf4565b60009260005b6007198316830381106300001a0257505060031c01553880806300000c7f565b909360206300001a2e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000019e2565b6000805b600881106300001a565750838201556001016300000c64565b949060206300001a82600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001a3d565b60376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae600284901b601c16806300001af6575b506007840160031c81015b6007830160031c820181106300001ae85750506300000c51565b600081556001016300001ace565b60001990816007870160031c8401019182549160200360031b1c169055386300001ac3565b6300001b3691503d806000833e63000012d681836300002e5b565b386300000c1a565b60009260005b6007198316830381106300001b6457505060031c01553880806300000ba5565b909360206300001b90600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001b44565b6000805b600881106300001bb85750838201556001016300000b8a565b949060206300001be4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001b9f565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c16806300001c58575b506007840160031c81015b6007830160031c820181106300001c4a5750506300000b77565b600081556001016300001c30565b60001990816007870160031c8401019182549160200360031b1c169055386300001c25565b6300001c9891503d806000833e63000012d681836300002e5b565b386300000b40565b60009260005b6007198316830381106300001cc657505060031c01553880806300000ad6565b909360206300001cf2600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001ca6565b6000805b600881106300001d1a5750838201556001016300000abb565b949060206300001d46600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001d01565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c16806300001dba575b506007840160031c81015b6007830160031c820181106300001dac5750506300000aa8565b600081556001016300001d92565b60001990816007870160031c8401019182549160200360031b1c169055386300001d87565b6300001dfa91503d806000833e63000012d681836300002e5b565b386300000a71565b60009260005b6007198316830381106300001e2857505060031c01553880806300000a07565b909360206300001e54600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001e08565b6000805b600881106300001e7c57508382015560010163000009ec565b949060206300001ea8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001e63565b602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f600284901b601c16806300001f1c575b506007840160031c81015b6007830160031c820181106300001f0e57505063000009d9565b600081556001016300001ef4565b60001990816007870160031c8401019182549160200360031b1c169055386300001ee9565b6300001f5c91503d806000833e63000012d681836300002e5b565b3863000009a2565b60009260005b6007198316830381106300001f8a57505060031c01553880806300000939565b909360206300001fb6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300001f6a565b6000805b600881106300001fde575083820155600101630000091e565b94906020630000200a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300001fc5565b602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2600284901b601c1680630000207e575b506007840160031c81015b6007830160031c820181106300002070575050630000090b565b600081556001016300002056565b60001990816007870160031c8401019182549160200360031b1c16905538630000204b565b63000020be91503d806000833e63000012d681836300002e5b565b3863000008d4565b60009260005b60071983168303811063000020ec57505060031c0155388080630000086d565b909360206300002118600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000020cc565b6000805b6008811063000021405750838201556001016300000852565b94906020630000216c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002127565b60296000527fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac600284901b601c168063000021e0575b506007840160031c81015b6007830160031c8201811063000021d2575050630000083f565b6000815560010163000021b8565b60001990816007870160031c8401019182549160200360031b1c1690553863000021ad565b630000222091503d806000833e63000012d681836300002e5b565b386300000808565b60009260005b600719831683038110630000224e57505060031c015538808063000007a1565b90936020630000227a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101630000222e565b6000805b6008811063000022a25750838201556001016300000786565b9490602063000022ce600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002289565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c16806300002342575b506007840160031c81015b6007830160031c8201811063000023345750506300000773565b60008155600101630000231a565b60001990816007870160031c8401019182549160200360031b1c16905538630000230f565b630000238291503d806000833e63000012d681836300002e5b565b38630000073c565b60009260005b60071983168303811063000023b057505060031c015538808063000006c7565b9093602063000023dc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002390565b6000805b60088110630000240457508382015560010163000006ac565b949060206300002430600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000023eb565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168063000024a4575b506007840160031c81015b6007830160031c8201811063000024965750506300000699565b60008155600101630000247c565b60001990816007870160031c8401019182549160200360031b1c169055386300002471565b63000024e491503d806000833e63000012d681836300002e5b565b386300000662565b60009260005b600719831683038110630000251257505060031c015538808063000005ed565b90936020630000253e600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000024f2565b6000805b60088110630000256657508382015560010163000005d2565b949060206300002592600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501630000254d565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c16806300002606575b506007840160031c81015b6007830160031c8201811063000025f857505063000005bf565b6000815560010163000025de565b60001990816007870160031c8401019182549160200360031b1c1690553863000025d3565b630000264691503d806000833e63000012d681836300002e5b565b386300000588565b60009260005b600719831683038110630000267457505060031c01553880806300000513565b9093602063000026a0600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002654565b6000805b6008811063000026c857508382015560010163000004f8565b9490602063000026f4600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950163000026af565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c16806300002768575b506007840160031c81015b6007830160031c82018110630000275a57505063000004e5565b600081556001016300002740565b60001990816007870160031c8401019182549160200360031b1c169055386300002735565b63000027a891503d806000833e63000012d681836300002e5b565b3863000004ae565b60009260005b60071983168303811063000027d657505060031c01553880806300000439565b909360206300002802600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910163000027b6565b6000805b60088110630000282a575083820155600101630000041e565b949060206300002856600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002811565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c168063000028ca575b506007840160031c81015b6007830160031c8201811063000028bc575050630000040b565b6000815560010163000028a2565b60001990816007870160031c8401019182549160200360031b1c169055386300002897565b630000290a91503d806000833e63000012d681836300002e5b565b3863000003d4565b60009260005b600719831683038110630000293857505060031c0155388080630000035f565b909360206300002964600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002918565b6000805b60088110630000298c5750838201556001016300000344565b9490602063000029b8600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002973565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c16806300002a2c575b506007840160031c81015b6007830160031c820181106300002a1e5750506300000331565b600081556001016300002a04565b60001990816007870160031c8401019182549160200360031b1c1690553863000029f9565b6300002a6c91503d806000833e63000012d681836300002e5b565b3863000002fa565b60009260005b6007198316830381106300002a9a57505060031c01553880806300000291565b909360206300002ac6600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002a7a565b6000805b600881106300002aee5750838201556001016300000276565b949060206300002b1a600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002ad5565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806300002b8e575b506007840160031c81015b6007830160031c820181106300002b805750506300000263565b600081556001016300002b66565b60001990816007870160031c8401019182549160200360031b1c169055386300002b5b565b6300002bce91503d806000833e63000012d681836300002e5b565b38630000022c565b60009260005b6007198316830381106300002bfc57505060031c015538808063000001c5565b909360206300002c28600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016300002bdc565b6000805b600881106300002c5057508382015560010163000001aa565b949060206300002c7c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002c37565b601c6000526020600020601c8460021b16806300002cd3575b506007840160031c81015b6007830160031c820181106300002cc55750506300000197565b600081556001016300002cab565b60001990816007870160031c8401019182549160200360031b1c169055386300002ca0565b6300002d1391503d806000833e63000012d681836300002e5b565b386300000160565b9260009360005b8181106300002d3e5750505060031c01553880808063000000f7565b90919460206300002d6b600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016300002d22565b6000805b600881106300002d9457508382015560010163000000db565b949060206300002dc0600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016300002d7b565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b16806300002e16575b505b8181106300002e08575063000000c8565b600081556001016300002df7565b600019908183019182549160200360031b1c169055386300002df5565b6300002e4e91503d806000833e63000012d681836300002e5b565b386300000091565b600080fd5b601f909101601f19168101906001600160401b0382119082101763000012a557604052565b9060209081838203126300002e565782516001600160401b03938482116300002e56570181601f820112156300002e5657805193841163000012a5578360051b90604051946300002ed5858401876300002e5b565b855283808601928201019283116300002e56578301905b8282106300002efc575050505090565b81516001600160e01b0319811681036300002e565781529083019083016300002eec56fe60808060405260043610156200001457600080fd5b60009081803560e01c9182630a9254e4146200543557505080631e334294146200523a5780631ed7831c14620051b45780632d49aa1c146200509257806330dd2c451462004f7c57806337bdc99b1462004d7f5780633e5e3c231462004cf95780633f7286f41462004c735780634d238c8e1462004c155780635c2c2fed146200461a57806363323eb814620045e257806366d9a9a0146200452b5780637b1837de146200421c57806385226c8114620040e15780638710555714620040aa578063916a17c61462003ff3578063951759c91462003b655780639b21108014620033f95780639c821dc61462002cb6578063a0aaa2851462002771578063a9fb763c14620026cb578063b5508aa9146200257c578063ba414fa61462002553578063c33dd9d51462001d14578063c69a046914620012c1578063d8d52713146200113c578063dd78497414620010fb578063e20c9f71146200105b578063ea1c89ed14620008c5578063eb8df0521462000459578063fa7626d41462000435578063fbfb892714620003fc5763fc6c1f0214620001b057600080fd5b34620003595760403660031901126200035957620001cd620056ea565b620001d7620078e0565b90620001fd620001e7826200797e565b92600093620001f6826200679d565b526200679d565b506040516200020c8162005599565b600181526020368183013762000225602435916200679d565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f85760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003ed57620003d7575b50604051906200028e8262005599565b438252836020830152823b15620003c8576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003cc579085939291620003aa575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039f576200036b575b50803b1562000367578180916004604051809481936390c5013b60e01b83525af180156200035c5762000343578280f35b6200034f8291620055d1565b6200035957808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003909060603d811162000397575b62000387818362005656565b81019062007937565b5062000312565b503d6200037b565b6040513d85823e3d90fd5b620003b99093919293620055d1565b620003c85790839138620002d1565b8380fd5b6040513d87823e3d90fd5b620003e590939193620055d1565b91386200027e565b6040513d86823e3d90fd5b8280fd5b5034620003595760603660031901126200035957620004326200041e620056d3565b6200042862005701565b9060043562007d20565b80f35b5034620003595780600319360112620003595760ff60209154166040519015158152f35b50346200035957600319606036820112620003675762000478620056ea565b6044356002811015620003c857602d54620004b060009162000499620078b6565b50603e546001600160a01b03908116911662008000565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004eb602482018d62005a2a565b03818b5afa948515620008ba57869562000880575b506001850185116200086c576001870187116200086c57600460206200052a6024358096620078d2565b9960405192838092632472942560e01b82525afa9081156200086157879162000825575b5015620007ed57806200071b5750603f546001600160a01b03169062000574906200797e565b91813b15620007175790620005b08693928a620005c06040519788968795869463018f44b760e41b865260406004870152604486019062005a2a565b9184830301602485015262005ab7565b03925af180156200039f57620006ff575b5090602092915b602d5462000641906200060c906001600160a01b0316620005f8620078b6565b50603e546001600160a01b03169062008000565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005a2a565b03915afa928315620006f35792620006b3575b50600101036200067957620004329360016200067292011462007c5b565b1462007c9b565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006ea575b81620006d26020938362005656565b81010312620006e5575190600162000654565b600080fd5b3d9150620006c3565b604051903d90823e3d90fd5b6200070b8391620055d1565b620003675738620005d1565b8580fd5b92989796959493926001146200073b575b505060209394959650620005d8565b603f549293926001600160a01b03169062000756906200797e565b91813b15620003c85790620007938489819594620007a36040519e8f978896879563028bf0d560e11b875260606004880152606487019062005a2a565b9185830301602486015262005ab7565b90604483015203925af1968715620007e057602094959697620007ce575b879695949291926200072c565b620007d990620055d1565b38620007c1565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000858575b81620008436020938362005656565b81010312620008545751386200054e565b8680fd5b3d915062000834565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008b1575b816200089f6020938362005656565b81010312620007175751933862000500565b3d915062000890565b6040513d88823e3d90fd5b5034620003595760c036600319011262000359576004356001600160401b0381116200036757620008fb90369060040162005b54565b62000905620056d3565b906200091062005701565b6064356001600160a01b0381168103620006e557608435906001600160a01b0382168203620006e55760a435926001600160a01b0384168403620006e557604051956200095d876200557d565b6005875260005b60a08110620010415750604051906200097d82620055b5565b60018060a01b0316815287602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062000fcc5762000a2894549181811062000e4d575b81811062000e2d575b81811062000e0d575b81811062000ded575b81811062000dcd575b81811062000dad575b81811062000d8f575b1062000d79575b50038262005656565b604082015262000a38876200679d565b5262000a44866200679d565b506040519062000a5482620055b5565b60018060a01b0316815286602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062000f575762000af794549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262000b0786620067c1565b5262000b1385620067c1565b506040519062000b2382620055b5565b60018060a01b0316815285602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062000ee25762000bc694549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262000bd685620067d2565b5262000be284620067d2565b506040519062000bf282620055b5565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000e6d5762000c9594549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262000ca584620067e3565b5262000cb183620067e3565b506040519062000cc182620055b5565b6001600160a01b031681526020810184905262000cdd62005fb3565b604082015262000ced83620067f4565b5262000cf982620067f4565b50604051916114a4808401908482106001600160401b0383111762000d65579184939162000d2d9362009dee863962007780565b039082f08015620007e057602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000a1f565b602083811b6001600160e01b03191685529093019260010162000a18565b604083901b6001600160e01b031916845260209093019260010162000a0f565b606083901b6001600160e01b031916845260209093019260010162000a06565b608083901b6001600160e01b0319168452602090930192600101620009fd565b60a083901b6001600160e01b0319168452602090930192600101620009f4565b60c083901b6001600160e01b0319168452602090930192600101620009eb565b60e083901b6001600160e01b0319168452602090930192600101620009e2565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000c3c565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000b6d565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a9e565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e0820152019401920184929391620009c7565b6020906200104e6200670b565b82828b0101520162000964565b50346200035957806003193601126200035957604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620010db57505050620010c19250038362005656565b620010d760405192828493845283019062005879565b0390f35b85546001600160a01b0316845260019586019588955093019201620010a7565b5034620003595760203660031901126200035957620010d76200112b62001121620056ea565b620005f8620078b6565b916040959395519586958662005a87565b5034620003595760403660031901126200035957806200115b620056ea565b6024356001600160401b03811162001284576200117d9036906004016200581c565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620012bc5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008ba578691620012a4575b5050813b15620012a057849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003ed57849162001288575b5050602d5416803b1562001284576200125e8391670de0b6b3a7640000936040519485809481936330b858b160e11b83526020600484015260248301906200599d565b03925af180156200035c57620012715750f35b6200127c90620055d1565b620003595780f35b5050fd5b6200129390620055d1565b620012845782386200121b565b8480fd5b620012af90620055d1565b620012a0578438620011d4565b505050fd5b50346200035957602036600319011262000359576004356001600160401b0381116200036757620012f790369060040162005b54565b604051613942808201908282106001600160401b0383111762001d005790829162020ce48339039083f09081156200035c5760405161154f808201908282106001600160401b0383111762000d65579082916201f7958339039084f080156200039f57604051610230808201908282106001600160401b0383111762001cec57908291620246268339039085f0908115620003ed5760405161069b808201908282106001600160401b0383111762001cd857908291620248568339039086f08015620003cc57604051612f0f808201908282106001600160401b0383111762001cc4579082916201c8868339039087f0908115620008ba57604051610884808201908282106001600160401b0383111762001cb0579082916200d0e08339039088f09384156200086157604051610d30808201908282106001600160401b0383111762001c9c579082916200c3b08339039089f093841562001c91576200145d6200672e565b97604051906200146d82620055b5565b60018060a01b0316815289602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062001c1c576200151094549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262001520896200679d565b526200152c886200679d565b50604051906200153c82620055b5565b60018060a01b0316815288602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062001ba757620015df94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620015ef88620067c1565b52620015fb87620067c1565b50604051906200160b82620055b5565b60018060a01b0316815287602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062001b3257620016ae94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620016be87620067d2565b52620016ca86620067d2565b5060405190620016da82620055b5565b60018060a01b0316815286602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062001abd576200177d94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200178d86620067e3565b526200179985620067e3565b5060405190620017a982620055b5565b6001600160a01b0316815260208101869052620017c562005fb3565b6040820152620017d585620067f4565b52620017e184620067f4565b5060405190620017f182620055b5565b60018060a01b0316815284602082015260405180816020602a549283815201602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2926000905b80600783011062001a48576200189494549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620018a48462006805565b52620018b08362006805565b5060405190620018c082620055b5565b60018060a01b0316815283602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b806007830110620019d3576200196394549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620019738362006816565b526200197f8262006816565b50604051916114a4808401908482106001600160401b0383111762000d655791849391620019b39362009dee863962007780565b039082f08015620007e0576040516001600160a01b039091168152602090f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201849293916200190a565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201849293916200183b565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001724565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001655565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001586565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620014b7565b6040513d8a823e3d90fd5b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b503462000359576003196020368201126200036757600435906001600160401b038211620003f85760a090823603011262000367576040519060a082018281106001600160401b038211176200253d5760405262001d758160040162005718565b825262001d856024820162005718565b602083015262001d986044820162005718565b604083015260648101356001600160401b038111620003c85762001dc3906004369184010162005adc565b60608301526084810135906001600160401b038211620003c857600462001dee923692010162005adc565b6080820152604051908160a08101106001600160401b0360a0840111176200253d5760a082016040526004825260005b6080811062002523575060405180610d308101106001600160401b03610d30830111176200250f57610d306200c3b0823980610d308101039084f080156200039f57604051806108848101106001600160401b036108848301111762001d00576108846200d0e08239806108848101039085f0908115620003ed5760405180611ec58101106001600160401b03611ec58301111762000d6557611ec562024ef1823980611ec58101039086f0908115620003cc5760405180610b3d8101106001600160401b03610b3d8301111762001cec57610b3d62026db6823980610b3d8101039087f0928315620008ba576040519062001f1a82620055b5565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620024995762001fbd94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262001fcd866200679d565b5262001fd9856200679d565b506040519062001fe982620055b5565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062002423576200208c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200209c85620067c1565b52620020a884620067c1565b5060405190620020b882620055b5565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620023ad576200215b94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200216b84620067d2565b526200217783620067d2565b50604051906200218782620055b5565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062002337576200222a94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200223a83620067e3565b526200224682620067e3565b506040519161111e90818401918483106001600160401b0384111762000d65579162002288859492620022f0946200b29287396040835260408301906200684b565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b0360408301511660408201526080620022de606084015160a0606085015260a0840190620058b8565b920151906080818403910152620058b8565b039082f08015620007e05760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e0820152019401920184929391620021d1565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162002102565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162002033565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001f64565b634e487b7160e01b84526041600452602484fd5b602090620025306200670b565b8282860101520162001e1e565b634e487b7160e01b600052604160045260246000fd5b5034620003595780600319360112620003595760206200257262005ca4565b6040519015158152f35b503462000359578060031936011262000359576010546200259d81620056bb565b90620025ad604051928362005656565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b848310620025f55760405180620010d78882620059c4565b604051849188549160019280841c908481168015620026c0575b8783108114620026ac57828452879493929181156200268e575060011462002652575b506200264381600196038262005656565b815201970192019195620025dd565b8b8952838920955088905b8082106200267657508101830194506200264362002632565b8654838301860152958501958794909101906200265d565b60ff19168584015250151560051b8101830194506200264362002632565b634e487b7160e01b8a52602260045260248afd5b91607f16916200260f565b50346200035957602036600319011262000359578080604051620026ef8162005599565b601c81527f726577617264206d6574686f642063616c6c656420776974682025640000000060208201526040516200275d816200274660208201946309710a9d60e41b86526040602484015260648301906200599d565b600435604483015203601f19810183528262005656565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003595760c036600319011262000359576200278f620056ea565b6024908135916001831015620003c857620027a962005678565b91620027b46200568f565b92620027bf620057e0565b60405192620027ce846200561e565b6000845260405193620027e18562005599565b607b85526020908186015260405192613942938481016001600160401b03958282108783111762002ca15790829162020ce4833903906000f098891562002c6c5760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f808201908282108983111762002c8c579082916201f795833903906000f0801562002c6c578a168b602f541617602f55604051610230808201908282108983111762002c8c5790829162024626833903906000f0801562002c6c578a168b6031541617603155604051612f0f808201908282108983111762002c8c579082916201c886833903906000f0801562002c6c578a168b603254161760325560405161069b808201908282108983111762002c8c5790829162024856833903906000f0801562002c6c578a168b6030541617603055604051610d30808201908282108983111762002c8c579082916200c3b0833903906000f0801562002c6c578a168b6033541617603355604051610884808201908282108983111762002c8c579082916200d0e0833903906000f093841562002c6c5762002b649762002b9c889485938f8f908160ff9b1680916034541617603455620029a46200672e565b9d8e83602d541660405190620029ba82620055b5565b8152600086820152620029cc620060c4565b6040820152620029dc826200679d565b52620029e8816200679d565b5083602f541660405190620029fd82620055b5565b815260008682015262002a0f62005da3565b604082015262002a1f82620067c1565b5262002a2b81620067c1565b5083603154166040519062002a4082620055b5565b815260008682015262002a52620061d5565b604082015262002a6282620067d2565b5262002a6e81620067d2565b5083603054166040519062002a8382620055b5565b815260008682015262002a95620062e6565b604082015262002aa582620067e3565b5262002ab181620067e3565b5083603254166040519062002ac682620055b5565b815260008682015262002ad862005fb3565b604082015262002ae882620067f4565b5262002af481620067f4565b5083603354166040519062002b0982620055b5565b815260008682015262002b1b620063f7565b604082015262002b2b8262006805565b5262002b378162006805565b506040519262002b4784620055b5565b835260008584015262002b5962006508565b604084015262006816565b5262002b708d62006816565b5062002b7b62007883565b9a6040519e8f62002b8c81620055e5565b5216908d015260408c0162007876565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a490818601928684109084111762002c7857509184939162002c0d9362009dee863962007780565b03906000f0801562002c6c5716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b5034620003595780600319360112620003595760405162002cd7816200563a565b6003815260005b60608110620033df575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039f578390620033a0575b62002d3d91506200797e565b62002d48876200679d565b5262002d54866200679d565b5060405183815260c8600482015284818381895afa80156200039f57839062003361575b62002d8491506200797e565b62002d8f87620067c1565b5262002d9b86620067c1565b506040519280845261012c93846004820152858184818a5afa8015620003ed57849062003322575b62002dcf91506200797e565b62002dda88620067d2565b5262002de687620067d2565b506040519562002df6876200563a565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008ba578694620032e3575b5062002e33896200679d565b6001600160a01b03948516905260405181815260c8600482015288818781875afa90811562000861578791620032a6575b508462002e718b620067c1565b9116905260405181815287600482015288818781875afa9081156200086157879162003269575b508462002ea58b620067d2565b911690526040519062002eb8826200563a565b600382528b368a8401376040519080825283600483015289828881885afa91821562001c915788926200322a575b50843b15620031695760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af18015620031c657908a9162003212575b505060405182815260c860048201528b818a818a5afa908115620031c6578a91620031d5575b50863b15620031d15787604051918583521660048201528a898201528981604481838b5af18015620031c657908a91620031aa575b5050604051918252600482015289818881885afa90811562001c915788916200316d575b50843b15620031695785906040519283521660048201528786820152868160448183885af18015620008615790879162003151575b5050808262002fef62003003936200679d565b528262002ffc82620067c1565b52620067d2565b5260405192620030138462005599565b4384528487850152813b15620012a05760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003ed57918493918a9362003131575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035c5762003110575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b828210620030db57888803868a01528880620010d78a8a62005879565b91939750918480620030fb83979899605f198d82030186528b5162005ab7565b990192019201889796959492939193620030be565b6200312a90873d8911620003975762000387818362005656565b5062003095565b62003141919350939193620055d1565b620003f857829188913862003058565b6200315c90620055d1565b6200071757853862002fdc565b8780fd5b90508981813d8311620031a2575b62003187818362005656565b8101031262003169576200319b9062007922565b3862002fa7565b503d6200317b565b620031b590620055d1565b620031c257883862002f83565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d83116200320a575b620031ef818362005656565b81010312620031d157620032039062007922565b3862002f4e565b503d620031e3565b6200321d90620055d1565b620031c257883862002f28565b9091508981813d831162003261575b62003245818362005656565b810103126200316957620032599062007922565b903862002ee6565b503d62003239565b90508881813d83116200329e575b62003283818362005656565b810103126200085457620032979062007922565b3862002e98565b503d62003277565b90508881813d8311620032db575b620032c0818362005656565b810103126200085457620032d49062007922565b3862002e64565b503d620032b4565b9093508781813d83116200331a575b620032fe818362005656565b810103126200071757620033129062007922565b923862002e27565b503d620032f2565b508581813d831162003359575b6200333b818362005656565b81010312620003c8576200335362002dcf9162007922565b62002dc3565b503d6200332f565b508481813d831162003398575b6200337a818362005656565b81010312620003f8576200339262002d849162007922565b62002d78565b503d6200336e565b508481813d8311620033d7575b620033b9818362005656565b81010312620003f857620033d162002d3d9162007922565b62002d31565b503d620033ad565b602090620033ec620078b6565b8282850101520162002cde565b503462000359576040366003190112620003595762003417620056ea565b62003421620056d3565b603e546001600160a01b031690813b15620006e557604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003ed5762003b49575b506200347b6004918362008000565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039f57839262003b21575b506020620034e191604051809381926390ba52cf60e01b8352846004840152602483019062005a2a565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f57868491829362003ae2575b5060405163aa5106cb60e01b81529293839182916200353191906004840162007b37565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f576200358591602091859162003ac4575b50604051809381926390ba52cf60e01b8352846004840152602483019062005a2a565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f3579262003a8a575b500362003a1357620035db620035e292620035d4670de0b6b3a76400006004971462007ce0565b1562007c5b565b1562007c9b565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e0576200363a9385918391620039cf575b5060405163aa5106cb60e01b815294859283926004840162007b37565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620039ed575b5062003672600492936200797e565b60405193620036818562005599565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e057620036df9383918391620039cf575060405163aa5106cb60e01b815294859283926004840162007b37565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620039a1575b5062003714906200797e565b60405191620037238362005599565b825260208201526040519062003739826200561e565b838252604051926200374b8462005602565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200378f8662005599565b855285602086015260405192620037a68462005599565b600194858552875b602081106200393a57505050505082620037c8826200679d565b52620037d4816200679d565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003675760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035c5762003922575b50506042546001600160a01b031690813b15620012a05791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620038eb5750505050508383809203925af180156200039f57620038d3575b602082604051620038c881620038b985820194868652604083019062007bbc565b03601f19810183528262005656565b519020604051908152f35b620038df8391620055d1565b62000367578162003898565b92959750929550926020806200390d87936043198c8203018652895162007bbc565b970192019201928795938a9795929362003876565b6200392d90620055d1565b620003c857833862003825565b6020906040516200394b8162005599565b604051620039598162005602565b6200396362007b61565b81526200396f62007b61565b848201528b60408201528b888201528b8682015287878201528b8582015281528a8382015282828901015201620037ae565b62003714919250620039c7903d8087833e620039be818362005656565b81019062007b0e565b919062003708565b620039e691503d8085833e620039be818362005656565b386200361d565b6004925062003a0b62003672913d8088833e620039be818362005656565b925062003663565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d60201162003abb575b8162003aa96020938362005656565b81010312620006e557519038620035ad565b3d915062003a9a565b62003adb91503d8087833e620039be818362005656565b3862003562565b925050506020813d60201162003b18575b8162003b026020938362005656565b81010312620006e557518286620035316200350d565b3d915062003af3565b620034e191925062003b406020913d8087833e620039be818362005656565b929150620034b7565b6004919362003b5c6200347b92620055d1565b9391506200346c565b50346200035957602080600319360112620003675762003b84620056ea565b91604051614ffa908181016001600160401b03928282108483111762001d0057908291620278f38339039083f09081156200035c5760405161154f808201908282108483111762000d65579082916201f7958339039084f09485156200039f576040519062003bf382620055b5565b600282528560005b6040811062003fda5750506040519662003c1588620055b5565b6001600160a01b039485168852868801869052604051602980548083526000918252828a019a9291907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b81600784011062003f64579a809c62003cd293859362003df29b9c9d9e54918482821062003f45575b82821062003f26575b82821062003f07575b82821062003ee8575b82821062003ec9575b82821062003eaa575b82821062003e8d575b501062003e77575b509050038262005656565b604082015262003ce2846200679d565b5262003cee836200679d565b50856040519162003cff83620055b5565b168152868882015262003d1162005da3565b604082015262003d2183620067c1565b5262003d2d82620067c1565b5060405162003d3c81620055e5565b62003d46620078b6565b815286888201528660408201528660608201528660808201528660a08201528660c08201528660e0820152866101008181840152600c61012083818601526402540be4006101409385858801528d60006040519162003da58362005599565b818352820152610160809801528d8c62003dbe62007883565b9960405162003dcd816200561e565b8981526040519062003ddf8262005599565b607b8252848201526040519d8e620055e5565b8d5216908b01528560408b0152670de0b6b3a764000060608b0152600160808b0152600a60a08b0152604660c08b0152606460e08b0152890152870152850152830152604051926114a4808501918583109083111762001cec579184939162003e619362009dee863962007780565b039083f0918215620006f3575060405191168152f35b6001600160e01b03191681528d91013862003cc7565b83811b6001600160e01b0319168552909301926001018462003cbf565b604084901b6001600160e01b0319168552909301926001018462003cb6565b606084901b6001600160e01b0319168552909301926001018462003cad565b608084901b6001600160e01b0319168552909301926001018462003ca4565b60a084901b6001600160e01b0319168552909301926001018462003c9b565b60c084901b6001600160e01b0319168552909301926001018462003c92565b60e084901b6001600160e01b0319168552909301926001018462003c89565b91816008600160079f8f9061010091885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019201939d505062003c60565b62003fe46200670b565b82828601015201869062003bfb565b503462000359578060031936011262000359576013546200401481620056bb565b9062004024604051928362005656565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b8383106200406b5760405180620010d78782620058f8565b6002826001926040516200407f8162005599565b848060a01b038a5416815262004097858b0162006619565b8382015281520196019201919462004053565b5034620003595760403660031901126200035957620010d76200112b620040d0620056ea565b620040da620056d3565b9062008000565b503462000359578060031936011262000359576011546200410281620056bb565b9062004112604051928362005656565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b8483106200415a5760405180620010d78882620059c4565b604051849188549160019280841c90848116801562004211575b8783108114620026ac5782845287949392918115620041f35750600114620041b7575b50620041a881600196038262005656565b81520197019201919562004142565b8b8952838920955088905b808210620041db5750810183019450620041a862004197565b865483830186015295850195879490910190620041c2565b60ff19168584015250151560051b810183019450620041a862004197565b91607f169162004174565b503462000359576003199060403683011262000359576200423c620056ea565b60249283359160018060a01b03620042a36200426d82602d541662004260620078b6565b5083603e54169062008000565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005a2a565b03915afa95861562002c6c57600096620044f6575b5060018601809611620044e15760018901809911620044e15786620042e084600493620078d2565b9b60405192838092632472942560e01b82525afa90811562002c6c57600091620044ae575b501562004477576200431c87603f5416946200797e565b93803b15620006e55762004367946000938e6040519788958694859363018f44b760e41b85526040600486015262004358604486018c62005a2a565b92858403019085015262005ab7565b03925af190811562002c6c578a97620043ca93869362004465575b50620043a387602d541662004396620078b6565b5088603e54169062008000565b9c935050989050604054169160405195869485938493845287600485015283019062005a2a565b03915afa90811562002c6c5760009162004432575b5003620043fa57506200043293929162000672911462007c5b565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200445d575b6200444b818362005656565b810103126200035957505138620043df565b503d6200443f565b6200447090620055d1565b3862004382565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d8311620044d9575b620044c7818362005656565b81010312620003595750513862004305565b503d620044bb565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162004523575b62004510818362005656565b81010312620003595750519438620042b8565b503d62004504565b503462000359578060031936011262000359576012546200454c81620056bb565b906200455c604051928362005656565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b838310620045a35760405180620010d78782620058f8565b600282600192604051620045b78162005599565b848060a01b038a54168152620045cf858b0162006619565b838201528152019601920191946200458b565b50346200035957604036600319011262000359576200043262004604620056d3565b603e546001600160a01b03169060043562007d20565b50346200035957610100366003190112620003595762004639620056ea565b6001602435101562000367576200464f62005678565b620046596200568f565b9162004664620057e0565b91600360c4351015620012a05760e43561ffff81168103620006e557604051946200468f866200561e565b6000865260405195620046a28762005599565b607b875260208701526040516139428082018281106001600160401b038211176200253d57829162020ce4833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b038211176200253d5782916201f795833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b038211176200253d57829162024626833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b038211176200253d5782916201c886833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b038211176200253d57829162024856833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b038211176200253d5782916200c3b0833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b038211176200253d5782916200d0e0833903906000f094851562002c6c57603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620048d56200672e565b602d54604051919b91906001600160a01b0316620048f382620055b5565b81526000602082015262004906620060c4565b6040820152620049168c6200679d565b52620049228b6200679d565b50602f54604051906001600160a01b03166200493e82620055b5565b8152600060208201526200495162005da3565b6040820152620049618c620067c1565b526200496d8b620067c1565b50603154604051906001600160a01b03166200498982620055b5565b8152600060208201526200499c620061d5565b6040820152620049ac8c620067d2565b52620049b88b620067d2565b50603054604051906001600160a01b0316620049d482620055b5565b815260006020820152620049e7620062e6565b6040820152620049f78c620067e3565b5262004a038b620067e3565b50603254604051906001600160a01b031662004a1f82620055b5565b81526000602082015262004a3262005fb3565b604082015262004a428c620067f4565b5262004a4e8b620067f4565b50603354604051906001600160a01b031662004a6a82620055b5565b81526000602082015262004a7d620063f7565b604082015262004a8d8c62006805565b5262004a998b62006805565b506040519062004aa982620055b5565b6001600160a01b031681526000602082015262004ac562006508565b604082015262004ad58b62006816565b5262004ae18a62006816565b5062004aec62007883565b986040519b62004afc8d620055e5565b8c526001600160a01b031660208c015262004b1d60243560408d0162007876565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c61012084015262004b5e60c4356200677c565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200253d57849362004b9f9362009dee863962007780565b03906000f0801562002c6c57602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b503462000359576020366003190112620003595762004c33620056ea565b62004c3d620078e0565b9062004c4d620001e7826200797e565b5060646200022560405162004c628162005599565b60018152602036818301376200679d565b50346200035957806003193601126200035957604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b8582821062004cd957505050620010c19250038362005656565b85546001600160a01b031684526001958601958895509301920162004cbf565b50346200035957806003193601126200035957604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b8582821062004d5f57505050620010c19250038362005656565b85546001600160a01b031684526001958601958895509301920162004d45565b503462000359576020806003193601126200036757604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003cc57859262004f3d575b5060016001600160401b03809316019082821162004f275780603f5416908662004df6336200797e565b92803b15620003675762004e299382916040518080978194636b2c1eef60e01b83528d6004840152602483019062005ab7565b0391600435905af1928315620007e057879362004f0a575b5050604054169360046040518096819382525afa928315620003cc57859362004eca575b50811691160362004e74575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004f02575b62004ee5818362005656565b81010312620012a05762004efa829162007a46565b929062004e65565b503d62004ed9565b62004f1891929350620055d1565b62000717578490863862004e41565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162004f74575b62004f58818362005656565b81010312620012a05762004f6c9062007a46565b903862004dcc565b503d62004f4c565b503462000359576020806003193601126200036757600435916001600160401b0391828411620003675736602385011215620003675783600401359062004fc382620056bb565b9162004fd3604051938462005656565b8083528183019560249687600593841b83010191368311620008545788859101915b8383106200508157505050508384905b868216600381101562005077578551111562005062576200503b879185681fffffffffffffffe085871b168801015190620078d2565b91168681146200504f576001019062005005565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162004ff5565b5034620003595760403660031901126200035957600435620050b3620056d3565b803190620050c0620078b6565b50603e546001600160a01b039290620050dc9084168362008000565b50505092905083603f541686813b15620003595786916004604051809481936316989f6f60e21b83525af1801562000861576200519b575b50806200513391319462005127620078b6565b50603e54169062008000565b5050509390508482039182116200086c5703620051615762000432926200515a91620078d2565b1462007ce0565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b95620051ac620051339297620055d1565b959062005114565b50346200035957806003193601126200035957604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b858282106200521a57505050620010c19250038362005656565b85546001600160a01b031684526001958601958895509301920162005200565b5034620003595760031960203682011262000367576001600160401b0360043511620003675760c090600435360301126200035957604051906200527e826200557d565b600435600401356001600160401b0381116200036757620052a79060043691813501016200572d565b82526004356024810135602084015260448101356040840152620052ce90606401620057f1565b6060830152608460043501356001600160401b03811162000367573660238260043501011215620003675760048181350101356200530c81620056bb565b926200531c604051948562005656565b81845260208401923660248460051b836004350101011162000367576024816004350101935b60248460051b836004350101018510620053905760206200537e888860808201526200537360a46004350162005869565b60a0820152620068d2565b6040516001600160a01b039091168152f35b84356001600160401b038111620003c85760606004358401820136036023190112620003c85760405190620053c582620055b5565b6004358401810160248101358352620053e19060440162005718565b60208301526001600160401b03606482866004350101013511620012a05760249260209283926200542290369060043589010160648101350187016200581c565b6040820152815201950194905062005342565b8190346200557a57816003193601126200557a57806200545760a0926200557d565b62005461620078b6565b81528260208201528260408201528260608201526060608082015201526040516200548c81620055b5565b600281526040366020830137600a620054a5826200679d565b52600b620054b382620067c1565b5260405190620054c38262005599565b607b82526020820152604051620054da816200561e565b82815260405191620054ec836200557d565b8252600a60208301526402540be4006040830152604660608301526080820152606460a08201526001600160a01b03906200552790620068d2565b166001600160601b0360a01b8181603e541617603e55818160405416176040558181603f541617603f55818160425416176042558181604554161760455581816047541617604755604654161760465580f35b50fd5b60c081019081106001600160401b038211176200253d57604052565b604081019081106001600160401b038211176200253d57604052565b606081019081106001600160401b038211176200253d57604052565b6001600160401b0381116200253d57604052565b61018081019081106001600160401b038211176200253d57604052565b60e081019081106001600160401b038211176200253d57604052565b602081019081106001600160401b038211176200253d57604052565b608081019081106001600160401b038211176200253d57604052565b90601f801991011681019081106001600160401b038211176200253d57604052565b606435906001600160401b0382168203620006e557565b608435906001600160401b0382168203620006e557565b35906001600160401b0382168203620006e557565b6001600160401b0381116200253d5760051b60200190565b602435906001600160a01b0382168203620006e557565b600435906001600160a01b0382168203620006e557565b604435906001600160a01b0382168203620006e557565b35906001600160a01b0382168203620006e557565b9190604083820312620006e55760405192620057498462005599565b836200575582620056a6565b815260209182810135906001600160401b038211620006e557019280601f85011215620006e55783356200578981620056bb565b9462005799604051968762005656565b818652848087019260051b820101928311620006e55784809101915b838310620057c557505050500152565b8190620057d28462005718565b8152019101908490620057b5565b60a4359060ff82168203620006e557565b359060ff82168203620006e557565b6001600160401b0381116200253d57601f01601f191660200190565b81601f82011215620006e557803590620058368262005800565b9262005846604051948562005656565b82845260208383010111620006e557816000926020809301838601378301015290565b359061ffff82168203620006e557565b90815180825260208080930193019160005b8281106200589a575050505090565b83516001600160a01b0316855293810193928101926001016200588b565b90815180825260208080930193019160005b828110620058d9575050505090565b83516001600160e01b03191685529381019392810192600101620058ca565b602080820190808352835180925260409283810182858560051b8401019601946000925b8584106200592e575050505050505090565b90919293949596858062005966600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620058b8565b9901940194019295949391906200591c565b60005b8381106200598c5750506000910152565b81810151838201526020016200597b565b90602091620059b88151809281855285808601910162005978565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620059f95750505050505090565b909192939495848062005a19600193603f198682030187528a516200599d565b9801930193019194939290620059e8565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005a69575050505090565b83516001600160a01b03168552938101939281019260010162005a5a565b91959493909262005aa360809460a0855260a085019062005a2a565b966020840152604083015260608201520152565b906040602062005ad99360ff815116845201519181602082015201906200599d565b90565b81601f82011215620006e55780359162005af683620056bb565b9262005b06604051948562005656565b808452602092838086019260051b820101928311620006e5578301905b82821062005b32575050505090565b81356001600160e01b031981168103620006e557815290830190830162005b23565b9190918083036101a08112620006e55760405162005b7281620055e5565b80948335906001600160401b038211620006e55762005b939185016200572d565b815262005ba36020840162005718565b602082015260408301356001811015620006e55760408201526060830135606082015262005bd460808401620056a6565b608082015262005be760a08401620056a6565b60a082015262005bfa60c08401620057f1565b60c082015262005c0d60e0840162005869565b60e08201526101008084013590820152610120918284013560009381850b8203620012a05783015261014080850135906003821015620012a057830152604061015f199091011262000367576040519262005c688462005599565b6101609283820135906002821015620003595750845262005c8d906101800162005718565b60208401520152565b51908115158203620006e557565b6000805460081c60ff161562005cbe575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62005ce057505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262005d0e83620055b5565b62005d4a6024604051809362005d396020830197630667f9d760e41b89525180928585019062005978565b810103600481018452018262005656565b51925af1503d1562005d9a573d9062005d638262005800565b9162005d73604051938462005656565b82523d81602084013e5b602082805181010312620003595750602062005ad9910162005c96565b60609062005d7d565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005f3f578462005e4897549383831062005f1e575b83831062005efd575b83831062005edc575b83831062005ebb575b83831062005e9a575b83831062005e7c575b5082821062005e5f575b501062005e4a575b509050038362005656565b565b6001600160e01b031916815201803862005e3d565b83811b6001600160e01b0319168552909301926001018462005e35565b84901b6001600160e01b031916855290930192600101843862005e2b565b606085901b6001600160e01b03191686529481019460019092019162005e22565b608085901b6001600160e01b03191686529481019460019092019162005e19565b60a085901b6001600160e01b03191686529481019460019092019162005e10565b60c085901b6001600160e01b03191686529481019460019092019162005e07565b60e085901b6001600160e01b03191686529481019460019092019162005dfe565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005de2565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062006050578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005ff2565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062006161578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006103565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b81600782011062006272578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006214565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062006383578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006325565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062006494578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006436565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b816007820110620065a5578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006547565b906040918251809382549283835260209182840191600052826000209460005b81600782011062006697578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006639565b604051906200671a82620055b5565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b038211176200253d57604052600782528160005b60e0811062006762575050565b6020906200676f6200670b565b8282850101520162006755565b600311156200678757565b634e487b7160e01b600052602160045260246000fd5b805115620067ab5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620067ab5760400190565b805160021015620067ab5760600190565b805160031015620067ab5760800190565b805160041015620067ab5760a00190565b805160051015620067ab5760c00190565b805160061015620067ab5760e00190565b805160071015620067ab576101000190565b805160081015620067ab576101200190565b90815180825260208092019182818360051b85019501936000915b848310620068775750505050505090565b9091929394958480620068c183856001950387528a51858060a01b03815116825283810151620068a7816200677c565b8483015260408091015191606080928201520190620058b8565b980193019301919493929062006866565b906040516117848082018281106001600160401b038211176200253d578291620170e4833903906000f0801562002c6c576040516116598082018281106001600160401b038211176200253d5782916201b22d833903906000f0801562002c6c576040516129c58082018281106001600160401b038211176200253d57829162018868833903906000f090811562002c6c57604051612a728082018281106001600160401b038211176200253d57829162014672833903906000f0801562002c6c576040516126e78082018281106001600160401b038211176200253d5782916200fbc5833903906000f0801562002c6c576040516122618082018281106001600160401b038211176200253d5782916200d964833903906000f090811562002c6c576040516123c68082018281106001600160401b038211176200253d578291620122ac833903906000f092831562002c6c57604051610d308082018281106001600160401b038211176200253d5782916200c3b0833903906000f095861562002c6c576040516108848082018281106001600160401b038211176200253d5782916200d0e0833903906000f095861562002c6c57604051986101408a018a81106001600160401b038211176200253d5760405260098a5260005b61012081106200776557506040519062006ac882620055b5565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620076f05762006b6c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006b7c8a6200679d565b5262006b88896200679d565b506040519062006b9882620055b5565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b8060078301106200767b5762006c3c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006c4c8962006816565b5262006c588862006816565b506040519062006c6882620055b5565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b806007830110620076065762006d0c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006d1c8862006827565b5262006d288762006827565b506040519062006d3882620055b5565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b806007830110620075915762006ddc94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006dec8762006839565b5262006df88662006839565b506040519062006e0882620055b5565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b8060078301106200751c5762006eac94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006ebc86620067c1565b5262006ec885620067c1565b506040519062006ed882620055b5565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b806007830110620074a75762006f7c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006f8c85620067d2565b5262006f9884620067d2565b506040519062006fa882620055b5565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062007432576200704c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200705c84620067e3565b526200706883620067e3565b50604051906200707882620055b5565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b806007830110620073bd576200711c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200712c83620067f4565b526200713882620067f4565b50604051906200714882620055b5565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b8060078301106200734857620071ec94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620071fc8262006805565b52620072088162006805565b5060405190611b4d808301918383106001600160401b038411176200253d576200724191620082a185396040835260408301906200684b565b9060208183039101526200725f845160c0835260c083019062005a2a565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b848410620072f55750505050505060a061ffff8185969701511691015203906000f0801562002c6c57603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062007337600193601f198682030188528660408d5180518452878060a01b0386820151168685015201519181604082015201906200599d565b9901940194019294939190620072aa565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162007193565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620070c3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006ff3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006f23565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006e53565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006d83565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006cb3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006be3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b13565b808b60208093620077756200670b565b920101520162006aae565b9062007795906040835260408301906200684b565b906020818303910152620077b382516101a080845283019062005a2a565b9160018060a01b038060208301511660208401526040820151600181101562006787576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b9084015261014080830151906200784b826200677c565b8401526101608092015191825192600284101562006787576101809360209286015201511691015290565b6001821015620067875752565b60006020604051620078958162005599565b8281520152604051620078a88162005599565b600081526000602082015290565b60405190620078c58262005599565b6060602083600081520152565b9190820180921162004f2757565b60405190620078ef8262005599565b600182528160005b602090818110156200791d5760209162007910620078b6565b90828501015201620078f7565b505050565b51906001600160a01b0382168203620006e557565b809291039160608312620006e5576040620079528262005c96565b93601f190112620006e55760408051916200796d8362005599565b602081015183520151602082015290565b6001600160401b039062007991620078b6565b5062007a2d6040918251906001600160601b03199060601b16602082015260148152620079be8162005599565b62007a1e835191620079d083620055b5565b600a83526fffffffffffffffffffffffffffffffff6020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a08301906200599d565b03601f19810184528362005656565b519062007a3a8262005599565b60048252602082015290565b51906001600160401b0382168203620006e557565b9190604083820312620006e5576040519262007a778462005599565b8362007a838262007a46565b815260209182810151906001600160401b038211620006e557019280601f85011215620006e557835162007ab781620056bb565b9462007ac7604051968762005656565b818652848087019260051b820101928311620006e55784809101915b83831062007af357505050500152565b819062007b008462007922565b815201910190849062007ae3565b90602082820312620006e55781516001600160401b038111620006e55762005ad9920162007a5b565b9062007b5160209194939460408452604084019062005a2a565b6001600160a01b03909416910152565b6040519062007b708262005599565b8162007b7b620078b6565b8152602062007b89620078b6565b910152565b62005ad991602062007baa835160408452604084019062005a2a565b92015190602081840391015262005ab7565b906020808351936040845260c062007c4862007be6875160e0604089015261012088019062007b8e565b62007c038589015191603f1992838a83030160608b015262007b8e565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e08901526200599d565b9501516101008501520151151591015290565b1562007c6357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b1562007ca357565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b1562007ce857565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e557829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007ff65790889493929162007fdf575b5062007d7d85918462008000565b9b93969298919a90508554168551938480926394074b0360e01b82525afa91821562007fd557839262007fb5575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b9081845288848062007deb60209b8c8095840152602483019062005a2a565b0381865af493841562007fab57908691829562007f6f575b50875163aa5106cb60e01b815294958591829162007e2591908d840162007b37565b0381855af492831562007f65579162007e5e93918893879362007f45575b5087518095819482938352868d840152602483019062005a2a565b03915af492831562007f3a579262007f05575b500362007e925750505091620035d4620035db9262005e4895941462007ce0565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d831162007f32575b62007f20818362005656565b81010312620006e55751903862007e71565b503d62007f14565b8451903d90823e3d90fd5b62007f5d9193503d8089833e620039be818362005656565b913862007e43565b86513d87823e3d90fd5b89809296508193503d831162007fa3575b62007f8c818362005656565b81010312620006e5575192859062007e2562007e03565b503d62007f80565b87513d88823e3d90fd5b62007fcd9192503d8085833e620039be818362005656565b903862007dab565b84513d85823e3d90fd5b9462007fef62007d7d96620055d1565b9462007d6f565b83513d87823e3d90fd5b906200800b620078b6565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa9182156200829657928092916200809f94829362008276575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007b37565b0381845af49283156200824957829362008253575b50620080e5929385541693855180926390ba52cf60e01b825281806020978895866004840152602483019062005a2a565b03915af49081156200824957908291829162008212575b50602486518096819363017187cd60e11b835260048301525afa9283156200820657819362008153575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e62008168818362005656565b8101918382840312620003595781516001600160401b0392838211620003f857019060c0828503126200035957855194620081a3866200557d565b8251865280830151908601528582015186860152620081c56060830162007a46565b6060860152620081d86080830162007a46565b608086015260a0820151928311620003595750620081f892910162007a5b565b60a082015238808062008126565b508351903d90823e3d90fd5b809250848092503d831162008241575b6200822e818362005656565b81010312620003675781905138620080fc565b503d62008222565b85513d84823e3d90fd5b620080e593506200826f903d8085833e620039be818362005656565b92620080b4565b6200828e9193503d8084833e620039be818362005656565b91386200806c565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a2646970667358221220a80c596eef37b94c13509ae3b3340b51a2ece92d921459577e0152e9809f1b6064736f6c63430008130033","sourceMap":"2095:1409:92:-:0;;;;;;;1594:4:2;2095:1409:92;;;;1594:4:2;2095:1409:92;;;1594:4:2;2095:1409:92;3201:4:5;2095:1409:92;;;3201:4:5;2095:1409:92;;;;4355:55:91;;2095:1409:92;3201:4:5;4355:55:91;;2095:1409:92;;;;;;;;;;;1594:4:2;4355:15:91;2095:1409:92;4355:15:91;;:55;;;;;;;1594:4:2;4355:55:91;;;-1:-1:-1;;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;4324:86:91;2095:1409:92;;4324:86:91;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;4324:86:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;;;;;4457:53:91;;2095:1409:92;3201:4:5;4457:53:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;1594:4:2;4355:15:91;2095:1409:92;4355:15:91;;4457:53;;;;;;;1594:4:2;4457:53:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;4420:90:91;2095:1409:92;;4420:90:91;2095:1409:92;;;;;;;;;;;4420:90:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;4546:51:91;;2095:1409:92;3201:4:5;4546:51:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;4546:51;;;;;;;1594:4:2;4546:51:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;4520:77:91;2095:1409:92;;4520:77:91;2095:1409:92;;;;;;;;;;;4520:77:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;4633:53:91;;2095:1409:92;3201:4:5;4633:53:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;4633:53;;;;;;;1594:4:2;4633:53:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;4607:79:91;2095:1409:92;;4607:79:91;2095:1409:92;;;;;;;;;;;4607:79:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7019:58:91;;2095:1409:92;3201:4:5;7019:58:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7019:58;;;;;;;1594:4:2;7019:58:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7108:59:91;;2095:1409:92;3201:4:5;7108:59:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7108:59;;;;;;;1594:4:2;7108:59:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7087:80:91;2095:1409:92;;7087:80:91;2095:1409:92;;;;;;;;;;;7087:80:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7197:57:91;;2095:1409:92;3201:4:5;7197:57:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7197:57;;;;;;;1594:4:2;7197:57:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7177:77:91;2095:1409:92;;7177:77:91;2095:1409:92;;;;;;;;;;;7177:77:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7286:58:91;;2095:1409:92;3201:4:5;7286:58:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7286:58;;;;;;;1594:4:2;7286:58:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7264:80:91;2095:1409:92;;7264:80:91;2095:1409:92;;;;;;;;;;;7264:80:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7380:65:91;;2095:1409:92;3201:4:5;7380:65:91;;2095:1409:92;4520:77:91;2095:1409:92;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7380:65;;;;;;;1594:4:2;7380:65:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7354:91:91;2095:1409:92;;7354:91:91;2095:1409:92;;;;;;;;;;;7354:91:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7482:51:91;;2095:1409:92;3201:4:5;7482:51:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7482:51;;;;;;;1594:4:2;7482:51:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7455:78:91;2095:1409:92;;7455:78:91;2095:1409:92;;;;;;;;;;;7455:78:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7563:51:91;;2095:1409:92;3201:4:5;7563:51:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7563:51;;;;;;;1594:4:2;7563:51:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7543:71:91;2095:1409:92;;7543:71:91;2095:1409:92;;;;;;;;;;;7543:71:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;7644:53:91;;2095:1409:92;3201:4:5;7644:53:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;7644:53;;;;;;;1594:4:2;7644:53:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;7624:73:91;2095:1409:92;;7624:73:91;2095:1409:92;;;;;;;;;;;7624:73:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;5541:54:91;;2095:1409:92;3201:4:5;5541:54:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;5541:54;;;;;;;1594:4:2;5541:54:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;5509:86:91;2095:1409:92;;5509:86:91;2095:1409:92;;;;;;;;;;;5509:86:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;5637:54:91;;2095:1409:92;3201:4:5;5637:54:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;5637:54;;;;;;;1594:4:2;5637:54:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;5605:86:91;2095:1409:92;;5605:86:91;2095:1409:92;;;;;;;;;;;5605:86:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;5735:56:91;;2095:1409:92;3201:4:5;5735:56:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;5735:56;;;;;;;1594:4:2;5735:56:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;5701:90:91;2095:1409:92;;5701:90:91;2095:1409:92;;;;;;;;;;;5701:90:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;5834:55:91;;2095:1409:92;3201:4:5;5834:55:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;5834:55;;;;;;;1594:4:2;5834:55:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;5801:88:91;2095:1409:92;;5801:88:91;2095:1409:92;;;;;;;;;;;5801:88:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;5920:54:91;;2095:1409:92;3201:4:5;5920:54:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;5920:54;;;;;;;1594:4:2;5920:54:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;5900:74:91;2095:1409:92;;5900:74:91;2095:1409:92;;;;;;;;;;;5900:74:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;6005:55:91;;2095:1409:92;3201:4:5;6005:55:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;6005:55;;;;;;;1594:4:2;6005:55:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;5984:76:91;2095:1409:92;;5984:76:91;2095:1409:92;;;;;;;;;;;5984:76:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;6093:57:91;;2095:1409:92;3201:4:5;6093:57:91;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;4355:15:91;6093:57;;;;;;;1594:4:2;6093:57:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;6070:80:91;2095:1409:92;;6070:80:91;2095:1409:92;;;;;;;;;;;6070:80:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;6180:51:91;;2095:1409:92;3201:4:5;6180:51:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;;;2095:1409:92;;;4355:15:91;6180:51;;;;;;;1594:4:2;6180:51:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;6160:71:91;2095:1409:92;;6160:71:91;2095:1409:92;;;;;;;;;;;6160:71:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;-1:-1:-1;;2095:1409:92;;-1:-1:-1;;;6260:53:91;;2095:1409:92;3201:4:5;6260:53:91;;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;-1:-1:-1;;;;2095:1409:92;;;4355:15:91;6260:53;;;;;;;1594:4:2;6260:53:91;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;6241:72:91;2095:1409:92;;6241:72:91;2095:1409:92;;;;;;;;;;;6241:72:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;1594:4:2;2095:1409:92;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6241:72:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;3201:4:5;2095:1409:92;;1594:4:2;2095:1409:92;6260:53:91;;;;;;1594:4:2;6260:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2095:1409:92;;;1594:4:2;2095:1409:92;;;;;;;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:71:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:51:91;;;;;;1594:4:2;6180:51:91;;;;;;:::i;:::-;;;;2095:1409:92;;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6070:80:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:57:91;;;;;;1594:4:2;6093:57:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:76:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:55:91;;;;;;1594:4:2;6005:55:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:74:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5920:54:91;;;;;;1594:4:2;5920:54:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:88:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:55:91;;;;;;1594:4:2;5834:55:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5701:90:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:56:91;;;;;;1594:4:2;5735:56:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:86:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5637:54:91;;;;;;1594:4:2;5637:54:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5509:86:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:54:91;;;;;;1594:4:2;5541:54:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:73:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7644:53:91;;;;;;1594:4:2;7644:53:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7543:71:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7563:51:91;;;;;;1594:4:2;7563:51:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7455:78:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7482:51:91;;;;;;1594:4:2;7482:51:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7354:91:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:65:91;;;;;;1594:4:2;7380:65:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:80:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:58:91;;;;;;1594:4:2;7286:58:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7177:77:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7197:57:91;;;;;;1594:4:2;7197:57:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:80:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7108:59:91;;;;;;1594:4:2;7108:59:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7019:58:91;;;;;;1594:4:2;7019:58:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:79:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:53:91;;;;;;1594:4:2;4633:53:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4520:77:91;1594:4:2;2095:1409:92;;;;;;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4546:51:91;;;;;;1594:4:2;4546:51:91;;;;;;:::i;:::-;;;;2095:1409:92;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4420:90:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;4420:90:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:53:91;;;;;;1594:4:2;4457:53:91;;;;;;:::i;:::-;;;;2095:1409:92;;1594:4:2;2095:1409:92;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;;;;1594:4:2;2095:1409:92;;;;;;;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:86:91;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;2095:1409:92;;1594:4:2;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;4355:55:91;;;;;;1594:4:2;4355:55:91;;;;;;:::i;:::-;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":105607,"length":20},{"start":111526,"length":20},{"start":116040,"length":20},{"start":123391,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":77927,"length":20},{"start":80108,"length":20},{"start":80682,"length":20},{"start":104484,"length":20},{"start":126395,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":69137,"length":20},{"start":69908,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":161800,"length":20},{"start":174437,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":90145,"length":20},{"start":104122,"length":20},{"start":125897,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":25606,"length":20},{"start":25686,"length":20},{"start":25770,"length":20},{"start":25951,"length":20},{"start":26116,"length":20},{"start":44239,"length":20},{"start":44957,"length":20},{"start":53939,"length":20},{"start":68806,"length":20},{"start":76156,"length":20},{"start":76744,"length":20},{"start":77617,"length":20},{"start":79675,"length":20},{"start":79962,"length":20},{"start":80512,"length":20},{"start":83562,"length":20},{"start":85961,"length":20},{"start":86058,"length":20},{"start":87153,"length":20},{"start":89814,"length":20},{"start":89916,"length":20},{"start":90246,"length":20},{"start":90331,"length":20},{"start":90432,"length":20},{"start":90517,"length":20},{"start":92004,"length":20},{"start":92082,"length":20},{"start":92187,"length":20},{"start":92343,"length":20},{"start":92893,"length":20},{"start":93134,"length":20},{"start":93215,"length":20},{"start":98688,"length":20},{"start":103191,"length":20},{"start":103867,"length":20},{"start":109462,"length":20},{"start":109681,"length":20},{"start":109761,"length":20},{"start":109942,"length":20},{"start":110123,"length":20},{"start":123573,"length":20},{"start":125633,"length":20},{"start":145576,"length":20},{"start":167330,"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":"0x60808060405260043610156200001457600080fd5b60009081803560e01c9182630a9254e4146200543557505080631e334294146200523a5780631ed7831c14620051b45780632d49aa1c146200509257806330dd2c451462004f7c57806337bdc99b1462004d7f5780633e5e3c231462004cf95780633f7286f41462004c735780634d238c8e1462004c155780635c2c2fed146200461a57806363323eb814620045e257806366d9a9a0146200452b5780637b1837de146200421c57806385226c8114620040e15780638710555714620040aa578063916a17c61462003ff3578063951759c91462003b655780639b21108014620033f95780639c821dc61462002cb6578063a0aaa2851462002771578063a9fb763c14620026cb578063b5508aa9146200257c578063ba414fa61462002553578063c33dd9d51462001d14578063c69a046914620012c1578063d8d52713146200113c578063dd78497414620010fb578063e20c9f71146200105b578063ea1c89ed14620008c5578063eb8df0521462000459578063fa7626d41462000435578063fbfb892714620003fc5763fc6c1f0214620001b057600080fd5b34620003595760403660031901126200035957620001cd620056ea565b620001d7620078e0565b90620001fd620001e7826200797e565b92600093620001f6826200679d565b526200679d565b506040516200020c8162005599565b600181526020368183013762000225602435916200679d565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f85760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003ed57620003d7575b50604051906200028e8262005599565b438252836020830152823b15620003c8576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003cc579085939291620003aa575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039f576200036b575b50803b1562000367578180916004604051809481936390c5013b60e01b83525af180156200035c5762000343578280f35b6200034f8291620055d1565b6200035957808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003909060603d811162000397575b62000387818362005656565b81019062007937565b5062000312565b503d6200037b565b6040513d85823e3d90fd5b620003b99093919293620055d1565b620003c85790839138620002d1565b8380fd5b6040513d87823e3d90fd5b620003e590939193620055d1565b91386200027e565b6040513d86823e3d90fd5b8280fd5b5034620003595760603660031901126200035957620004326200041e620056d3565b6200042862005701565b9060043562007d20565b80f35b5034620003595780600319360112620003595760ff60209154166040519015158152f35b50346200035957600319606036820112620003675762000478620056ea565b6044356002811015620003c857602d54620004b060009162000499620078b6565b50603e546001600160a01b03908116911662008000565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004eb602482018d62005a2a565b03818b5afa948515620008ba57869562000880575b506001850185116200086c576001870187116200086c57600460206200052a6024358096620078d2565b9960405192838092632472942560e01b82525afa9081156200086157879162000825575b5015620007ed57806200071b5750603f546001600160a01b03169062000574906200797e565b91813b15620007175790620005b08693928a620005c06040519788968795869463018f44b760e41b865260406004870152604486019062005a2a565b9184830301602485015262005ab7565b03925af180156200039f57620006ff575b5090602092915b602d5462000641906200060c906001600160a01b0316620005f8620078b6565b50603e546001600160a01b03169062008000565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005a2a565b03915afa928315620006f35792620006b3575b50600101036200067957620004329360016200067292011462007c5b565b1462007c9b565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006ea575b81620006d26020938362005656565b81010312620006e5575190600162000654565b600080fd5b3d9150620006c3565b604051903d90823e3d90fd5b6200070b8391620055d1565b620003675738620005d1565b8580fd5b92989796959493926001146200073b575b505060209394959650620005d8565b603f549293926001600160a01b03169062000756906200797e565b91813b15620003c85790620007938489819594620007a36040519e8f978896879563028bf0d560e11b875260606004880152606487019062005a2a565b9185830301602486015262005ab7565b90604483015203925af1968715620007e057602094959697620007ce575b879695949291926200072c565b620007d990620055d1565b38620007c1565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000858575b81620008436020938362005656565b81010312620008545751386200054e565b8680fd5b3d915062000834565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008b1575b816200089f6020938362005656565b81010312620007175751933862000500565b3d915062000890565b6040513d88823e3d90fd5b5034620003595760c036600319011262000359576004356001600160401b0381116200036757620008fb90369060040162005b54565b62000905620056d3565b906200091062005701565b6064356001600160a01b0381168103620006e557608435906001600160a01b0382168203620006e55760a435926001600160a01b0384168403620006e557604051956200095d876200557d565b6005875260005b60a08110620010415750604051906200097d82620055b5565b60018060a01b0316815287602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062000fcc5762000a2894549181811062000e4d575b81811062000e2d575b81811062000e0d575b81811062000ded575b81811062000dcd575b81811062000dad575b81811062000d8f575b1062000d79575b50038262005656565b604082015262000a38876200679d565b5262000a44866200679d565b506040519062000a5482620055b5565b60018060a01b0316815286602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062000f575762000af794549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262000b0786620067c1565b5262000b1385620067c1565b506040519062000b2382620055b5565b60018060a01b0316815285602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062000ee25762000bc694549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262000bd685620067d2565b5262000be284620067d2565b506040519062000bf282620055b5565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000e6d5762000c9594549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262000ca584620067e3565b5262000cb183620067e3565b506040519062000cc182620055b5565b6001600160a01b031681526020810184905262000cdd62005fb3565b604082015262000ced83620067f4565b5262000cf982620067f4565b50604051916114a4808401908482106001600160401b0383111762000d65579184939162000d2d9362009dee863962007780565b039082f08015620007e057602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000a1f565b602083811b6001600160e01b03191685529093019260010162000a18565b604083901b6001600160e01b031916845260209093019260010162000a0f565b606083901b6001600160e01b031916845260209093019260010162000a06565b608083901b6001600160e01b0319168452602090930192600101620009fd565b60a083901b6001600160e01b0319168452602090930192600101620009f4565b60c083901b6001600160e01b0319168452602090930192600101620009eb565b60e083901b6001600160e01b0319168452602090930192600101620009e2565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000c3c565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000b6d565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a9e565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e0820152019401920184929391620009c7565b6020906200104e6200670b565b82828b0101520162000964565b50346200035957806003193601126200035957604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620010db57505050620010c19250038362005656565b620010d760405192828493845283019062005879565b0390f35b85546001600160a01b0316845260019586019588955093019201620010a7565b5034620003595760203660031901126200035957620010d76200112b62001121620056ea565b620005f8620078b6565b916040959395519586958662005a87565b5034620003595760403660031901126200035957806200115b620056ea565b6024356001600160401b03811162001284576200117d9036906004016200581c565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620012bc5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008ba578691620012a4575b5050813b15620012a057849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003ed57849162001288575b5050602d5416803b1562001284576200125e8391670de0b6b3a7640000936040519485809481936330b858b160e11b83526020600484015260248301906200599d565b03925af180156200035c57620012715750f35b6200127c90620055d1565b620003595780f35b5050fd5b6200129390620055d1565b620012845782386200121b565b8480fd5b620012af90620055d1565b620012a0578438620011d4565b505050fd5b50346200035957602036600319011262000359576004356001600160401b0381116200036757620012f790369060040162005b54565b604051613942808201908282106001600160401b0383111762001d005790829162020ce48339039083f09081156200035c5760405161154f808201908282106001600160401b0383111762000d65579082916201f7958339039084f080156200039f57604051610230808201908282106001600160401b0383111762001cec57908291620246268339039085f0908115620003ed5760405161069b808201908282106001600160401b0383111762001cd857908291620248568339039086f08015620003cc57604051612f0f808201908282106001600160401b0383111762001cc4579082916201c8868339039087f0908115620008ba57604051610884808201908282106001600160401b0383111762001cb0579082916200d0e08339039088f09384156200086157604051610d30808201908282106001600160401b0383111762001c9c579082916200c3b08339039089f093841562001c91576200145d6200672e565b97604051906200146d82620055b5565b60018060a01b0316815289602082015260405180816020602554928381520160256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c926000905b80600783011062001c1c576200151094549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262001520896200679d565b526200152c886200679d565b50604051906200153c82620055b5565b60018060a01b0316815288602082015260405180816020602454928381520160246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4926000905b80600783011062001ba757620015df94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620015ef88620067c1565b52620015fb87620067c1565b50604051906200160b82620055b5565b60018060a01b0316815287602082015260405180816020602654928381520160266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594926000905b80600783011062001b3257620016ae94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620016be87620067d2565b52620016ca86620067d2565b5060405190620016da82620055b5565b60018060a01b0316815286602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062001abd576200177d94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200178d86620067e3565b526200179985620067e3565b5060405190620017a982620055b5565b6001600160a01b0316815260208101869052620017c562005fb3565b6040820152620017d585620067f4565b52620017e184620067f4565b5060405190620017f182620055b5565b60018060a01b0316815284602082015260405180816020602a549283815201602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2926000905b80600783011062001a48576200189494549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620018a48462006805565b52620018b08362006805565b5060405190620018c082620055b5565b60018060a01b0316815283602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b806007830110620019d3576200196394549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620019738362006816565b526200197f8262006816565b50604051916114a4808401908482106001600160401b0383111762000d655791849391620019b39362009dee863962007780565b039082f08015620007e0576040516001600160a01b039091168152602090f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201849293916200190a565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201849293916200183b565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001724565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001655565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162001586565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920184929391620014b7565b6040513d8a823e3d90fd5b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b503462000359576003196020368201126200036757600435906001600160401b038211620003f85760a090823603011262000367576040519060a082018281106001600160401b038211176200253d5760405262001d758160040162005718565b825262001d856024820162005718565b602083015262001d986044820162005718565b604083015260648101356001600160401b038111620003c85762001dc3906004369184010162005adc565b60608301526084810135906001600160401b038211620003c857600462001dee923692010162005adc565b6080820152604051908160a08101106001600160401b0360a0840111176200253d5760a082016040526004825260005b6080811062002523575060405180610d308101106001600160401b03610d30830111176200250f57610d306200c3b0823980610d308101039084f080156200039f57604051806108848101106001600160401b036108848301111762001d00576108846200d0e08239806108848101039085f0908115620003ed5760405180611ec58101106001600160401b03611ec58301111762000d6557611ec562024ef1823980611ec58101039086f0908115620003cc5760405180610b3d8101106001600160401b03610b3d8301111762001cec57610b3d62026db6823980610b3d8101039087f0928315620008ba576040519062001f1a82620055b5565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620024995762001fbd94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262001fcd866200679d565b5262001fd9856200679d565b506040519062001fe982620055b5565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062002423576200208c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200209c85620067c1565b52620020a884620067c1565b5060405190620020b882620055b5565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620023ad576200215b94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200216b84620067d2565b526200217783620067d2565b50604051906200218782620055b5565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062002337576200222a94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200223a83620067e3565b526200224682620067e3565b506040519161111e90818401918483106001600160401b0384111762000d65579162002288859492620022f0946200b29287396040835260408301906200684b565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b0360408301511660408201526080620022de606084015160a0606085015260a0840190620058b8565b920151906080818403910152620058b8565b039082f08015620007e05760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e0820152019401920184929391620021d1565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162002102565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162002033565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001f64565b634e487b7160e01b84526041600452602484fd5b602090620025306200670b565b8282860101520162001e1e565b634e487b7160e01b600052604160045260246000fd5b5034620003595780600319360112620003595760206200257262005ca4565b6040519015158152f35b503462000359578060031936011262000359576010546200259d81620056bb565b90620025ad604051928362005656565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b848310620025f55760405180620010d78882620059c4565b604051849188549160019280841c908481168015620026c0575b8783108114620026ac57828452879493929181156200268e575060011462002652575b506200264381600196038262005656565b815201970192019195620025dd565b8b8952838920955088905b8082106200267657508101830194506200264362002632565b8654838301860152958501958794909101906200265d565b60ff19168584015250151560051b8101830194506200264362002632565b634e487b7160e01b8a52602260045260248afd5b91607f16916200260f565b50346200035957602036600319011262000359578080604051620026ef8162005599565b601c81527f726577617264206d6574686f642063616c6c656420776974682025640000000060208201526040516200275d816200274660208201946309710a9d60e41b86526040602484015260648301906200599d565b600435604483015203601f19810183528262005656565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003595760c036600319011262000359576200278f620056ea565b6024908135916001831015620003c857620027a962005678565b91620027b46200568f565b92620027bf620057e0565b60405192620027ce846200561e565b6000845260405193620027e18562005599565b607b85526020908186015260405192613942938481016001600160401b03958282108783111762002ca15790829162020ce4833903906000f098891562002c6c5760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f808201908282108983111762002c8c579082916201f795833903906000f0801562002c6c578a168b602f541617602f55604051610230808201908282108983111762002c8c5790829162024626833903906000f0801562002c6c578a168b6031541617603155604051612f0f808201908282108983111762002c8c579082916201c886833903906000f0801562002c6c578a168b603254161760325560405161069b808201908282108983111762002c8c5790829162024856833903906000f0801562002c6c578a168b6030541617603055604051610d30808201908282108983111762002c8c579082916200c3b0833903906000f0801562002c6c578a168b6033541617603355604051610884808201908282108983111762002c8c579082916200d0e0833903906000f093841562002c6c5762002b649762002b9c889485938f8f908160ff9b1680916034541617603455620029a46200672e565b9d8e83602d541660405190620029ba82620055b5565b8152600086820152620029cc620060c4565b6040820152620029dc826200679d565b52620029e8816200679d565b5083602f541660405190620029fd82620055b5565b815260008682015262002a0f62005da3565b604082015262002a1f82620067c1565b5262002a2b81620067c1565b5083603154166040519062002a4082620055b5565b815260008682015262002a52620061d5565b604082015262002a6282620067d2565b5262002a6e81620067d2565b5083603054166040519062002a8382620055b5565b815260008682015262002a95620062e6565b604082015262002aa582620067e3565b5262002ab181620067e3565b5083603254166040519062002ac682620055b5565b815260008682015262002ad862005fb3565b604082015262002ae882620067f4565b5262002af481620067f4565b5083603354166040519062002b0982620055b5565b815260008682015262002b1b620063f7565b604082015262002b2b8262006805565b5262002b378162006805565b506040519262002b4784620055b5565b835260008584015262002b5962006508565b604084015262006816565b5262002b708d62006816565b5062002b7b62007883565b9a6040519e8f62002b8c81620055e5565b5216908d015260408c0162007876565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a490818601928684109084111762002c7857509184939162002c0d9362009dee863962007780565b03906000f0801562002c6c5716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b5034620003595780600319360112620003595760405162002cd7816200563a565b6003815260005b60608110620033df575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039f578390620033a0575b62002d3d91506200797e565b62002d48876200679d565b5262002d54866200679d565b5060405183815260c8600482015284818381895afa80156200039f57839062003361575b62002d8491506200797e565b62002d8f87620067c1565b5262002d9b86620067c1565b506040519280845261012c93846004820152858184818a5afa8015620003ed57849062003322575b62002dcf91506200797e565b62002dda88620067d2565b5262002de687620067d2565b506040519562002df6876200563a565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008ba578694620032e3575b5062002e33896200679d565b6001600160a01b03948516905260405181815260c8600482015288818781875afa90811562000861578791620032a6575b508462002e718b620067c1565b9116905260405181815287600482015288818781875afa9081156200086157879162003269575b508462002ea58b620067d2565b911690526040519062002eb8826200563a565b600382528b368a8401376040519080825283600483015289828881885afa91821562001c915788926200322a575b50843b15620031695760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af18015620031c657908a9162003212575b505060405182815260c860048201528b818a818a5afa908115620031c6578a91620031d5575b50863b15620031d15787604051918583521660048201528a898201528981604481838b5af18015620031c657908a91620031aa575b5050604051918252600482015289818881885afa90811562001c915788916200316d575b50843b15620031695785906040519283521660048201528786820152868160448183885af18015620008615790879162003151575b5050808262002fef62003003936200679d565b528262002ffc82620067c1565b52620067d2565b5260405192620030138462005599565b4384528487850152813b15620012a05760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003ed57918493918a9362003131575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035c5762003110575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b828210620030db57888803868a01528880620010d78a8a62005879565b91939750918480620030fb83979899605f198d82030186528b5162005ab7565b990192019201889796959492939193620030be565b6200312a90873d8911620003975762000387818362005656565b5062003095565b62003141919350939193620055d1565b620003f857829188913862003058565b6200315c90620055d1565b6200071757853862002fdc565b8780fd5b90508981813d8311620031a2575b62003187818362005656565b8101031262003169576200319b9062007922565b3862002fa7565b503d6200317b565b620031b590620055d1565b620031c257883862002f83565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d83116200320a575b620031ef818362005656565b81010312620031d157620032039062007922565b3862002f4e565b503d620031e3565b6200321d90620055d1565b620031c257883862002f28565b9091508981813d831162003261575b62003245818362005656565b810103126200316957620032599062007922565b903862002ee6565b503d62003239565b90508881813d83116200329e575b62003283818362005656565b810103126200085457620032979062007922565b3862002e98565b503d62003277565b90508881813d8311620032db575b620032c0818362005656565b810103126200085457620032d49062007922565b3862002e64565b503d620032b4565b9093508781813d83116200331a575b620032fe818362005656565b810103126200071757620033129062007922565b923862002e27565b503d620032f2565b508581813d831162003359575b6200333b818362005656565b81010312620003c8576200335362002dcf9162007922565b62002dc3565b503d6200332f565b508481813d831162003398575b6200337a818362005656565b81010312620003f8576200339262002d849162007922565b62002d78565b503d6200336e565b508481813d8311620033d7575b620033b9818362005656565b81010312620003f857620033d162002d3d9162007922565b62002d31565b503d620033ad565b602090620033ec620078b6565b8282850101520162002cde565b503462000359576040366003190112620003595762003417620056ea565b62003421620056d3565b603e546001600160a01b031690813b15620006e557604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003ed5762003b49575b506200347b6004918362008000565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039f57839262003b21575b506020620034e191604051809381926390ba52cf60e01b8352846004840152602483019062005a2a565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f57868491829362003ae2575b5060405163aa5106cb60e01b81529293839182916200353191906004840162007b37565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f576200358591602091859162003ac4575b50604051809381926390ba52cf60e01b8352846004840152602483019062005a2a565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f3579262003a8a575b500362003a1357620035db620035e292620035d4670de0b6b3a76400006004971462007ce0565b1562007c5b565b1562007c9b565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e0576200363a9385918391620039cf575b5060405163aa5106cb60e01b815294859283926004840162007b37565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620039ed575b5062003672600492936200797e565b60405193620036818562005599565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e057620036df9383918391620039cf575060405163aa5106cb60e01b815294859283926004840162007b37565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620039a1575b5062003714906200797e565b60405191620037238362005599565b825260208201526040519062003739826200561e565b838252604051926200374b8462005602565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200378f8662005599565b855285602086015260405192620037a68462005599565b600194858552875b602081106200393a57505050505082620037c8826200679d565b52620037d4816200679d565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003675760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035c5762003922575b50506042546001600160a01b031690813b15620012a05791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620038eb5750505050508383809203925af180156200039f57620038d3575b602082604051620038c881620038b985820194868652604083019062007bbc565b03601f19810183528262005656565b519020604051908152f35b620038df8391620055d1565b62000367578162003898565b92959750929550926020806200390d87936043198c8203018652895162007bbc565b970192019201928795938a9795929362003876565b6200392d90620055d1565b620003c857833862003825565b6020906040516200394b8162005599565b604051620039598162005602565b6200396362007b61565b81526200396f62007b61565b848201528b60408201528b888201528b8682015287878201528b8582015281528a8382015282828901015201620037ae565b62003714919250620039c7903d8087833e620039be818362005656565b81019062007b0e565b919062003708565b620039e691503d8085833e620039be818362005656565b386200361d565b6004925062003a0b62003672913d8088833e620039be818362005656565b925062003663565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d60201162003abb575b8162003aa96020938362005656565b81010312620006e557519038620035ad565b3d915062003a9a565b62003adb91503d8087833e620039be818362005656565b3862003562565b925050506020813d60201162003b18575b8162003b026020938362005656565b81010312620006e557518286620035316200350d565b3d915062003af3565b620034e191925062003b406020913d8087833e620039be818362005656565b929150620034b7565b6004919362003b5c6200347b92620055d1565b9391506200346c565b50346200035957602080600319360112620003675762003b84620056ea565b91604051614ffa908181016001600160401b03928282108483111762001d0057908291620278f38339039083f09081156200035c5760405161154f808201908282108483111762000d65579082916201f7958339039084f09485156200039f576040519062003bf382620055b5565b600282528560005b6040811062003fda5750506040519662003c1588620055b5565b6001600160a01b039485168852868801869052604051602980548083526000918252828a019a9291907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b81600784011062003f64579a809c62003cd293859362003df29b9c9d9e54918482821062003f45575b82821062003f26575b82821062003f07575b82821062003ee8575b82821062003ec9575b82821062003eaa575b82821062003e8d575b501062003e77575b509050038262005656565b604082015262003ce2846200679d565b5262003cee836200679d565b50856040519162003cff83620055b5565b168152868882015262003d1162005da3565b604082015262003d2183620067c1565b5262003d2d82620067c1565b5060405162003d3c81620055e5565b62003d46620078b6565b815286888201528660408201528660608201528660808201528660a08201528660c08201528660e0820152866101008181840152600c61012083818601526402540be4006101409385858801528d60006040519162003da58362005599565b818352820152610160809801528d8c62003dbe62007883565b9960405162003dcd816200561e565b8981526040519062003ddf8262005599565b607b8252848201526040519d8e620055e5565b8d5216908b01528560408b0152670de0b6b3a764000060608b0152600160808b0152600a60a08b0152604660c08b0152606460e08b0152890152870152850152830152604051926114a4808501918583109083111762001cec579184939162003e619362009dee863962007780565b039083f0918215620006f3575060405191168152f35b6001600160e01b03191681528d91013862003cc7565b83811b6001600160e01b0319168552909301926001018462003cbf565b604084901b6001600160e01b0319168552909301926001018462003cb6565b606084901b6001600160e01b0319168552909301926001018462003cad565b608084901b6001600160e01b0319168552909301926001018462003ca4565b60a084901b6001600160e01b0319168552909301926001018462003c9b565b60c084901b6001600160e01b0319168552909301926001018462003c92565b60e084901b6001600160e01b0319168552909301926001018462003c89565b91816008600160079f8f9061010091885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019201939d505062003c60565b62003fe46200670b565b82828601015201869062003bfb565b503462000359578060031936011262000359576013546200401481620056bb565b9062004024604051928362005656565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b8383106200406b5760405180620010d78782620058f8565b6002826001926040516200407f8162005599565b848060a01b038a5416815262004097858b0162006619565b8382015281520196019201919462004053565b5034620003595760403660031901126200035957620010d76200112b620040d0620056ea565b620040da620056d3565b9062008000565b503462000359578060031936011262000359576011546200410281620056bb565b9062004112604051928362005656565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b8483106200415a5760405180620010d78882620059c4565b604051849188549160019280841c90848116801562004211575b8783108114620026ac5782845287949392918115620041f35750600114620041b7575b50620041a881600196038262005656565b81520197019201919562004142565b8b8952838920955088905b808210620041db5750810183019450620041a862004197565b865483830186015295850195879490910190620041c2565b60ff19168584015250151560051b810183019450620041a862004197565b91607f169162004174565b503462000359576003199060403683011262000359576200423c620056ea565b60249283359160018060a01b03620042a36200426d82602d541662004260620078b6565b5083603e54169062008000565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005a2a565b03915afa95861562002c6c57600096620044f6575b5060018601809611620044e15760018901809911620044e15786620042e084600493620078d2565b9b60405192838092632472942560e01b82525afa90811562002c6c57600091620044ae575b501562004477576200431c87603f5416946200797e565b93803b15620006e55762004367946000938e6040519788958694859363018f44b760e41b85526040600486015262004358604486018c62005a2a565b92858403019085015262005ab7565b03925af190811562002c6c578a97620043ca93869362004465575b50620043a387602d541662004396620078b6565b5088603e54169062008000565b9c935050989050604054169160405195869485938493845287600485015283019062005a2a565b03915afa90811562002c6c5760009162004432575b5003620043fa57506200043293929162000672911462007c5b565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200445d575b6200444b818362005656565b810103126200035957505138620043df565b503d6200443f565b6200447090620055d1565b3862004382565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d8311620044d9575b620044c7818362005656565b81010312620003595750513862004305565b503d620044bb565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162004523575b62004510818362005656565b81010312620003595750519438620042b8565b503d62004504565b503462000359578060031936011262000359576012546200454c81620056bb565b906200455c604051928362005656565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b838310620045a35760405180620010d78782620058f8565b600282600192604051620045b78162005599565b848060a01b038a54168152620045cf858b0162006619565b838201528152019601920191946200458b565b50346200035957604036600319011262000359576200043262004604620056d3565b603e546001600160a01b03169060043562007d20565b50346200035957610100366003190112620003595762004639620056ea565b6001602435101562000367576200464f62005678565b620046596200568f565b9162004664620057e0565b91600360c4351015620012a05760e43561ffff81168103620006e557604051946200468f866200561e565b6000865260405195620046a28762005599565b607b875260208701526040516139428082018281106001600160401b038211176200253d57829162020ce4833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b038211176200253d5782916201f795833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b038211176200253d57829162024626833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b038211176200253d5782916201c886833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b038211176200253d57829162024856833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b038211176200253d5782916200c3b0833903906000f0801562002c6c5760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b038211176200253d5782916200d0e0833903906000f094851562002c6c57603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620048d56200672e565b602d54604051919b91906001600160a01b0316620048f382620055b5565b81526000602082015262004906620060c4565b6040820152620049168c6200679d565b52620049228b6200679d565b50602f54604051906001600160a01b03166200493e82620055b5565b8152600060208201526200495162005da3565b6040820152620049618c620067c1565b526200496d8b620067c1565b50603154604051906001600160a01b03166200498982620055b5565b8152600060208201526200499c620061d5565b6040820152620049ac8c620067d2565b52620049b88b620067d2565b50603054604051906001600160a01b0316620049d482620055b5565b815260006020820152620049e7620062e6565b6040820152620049f78c620067e3565b5262004a038b620067e3565b50603254604051906001600160a01b031662004a1f82620055b5565b81526000602082015262004a3262005fb3565b604082015262004a428c620067f4565b5262004a4e8b620067f4565b50603354604051906001600160a01b031662004a6a82620055b5565b81526000602082015262004a7d620063f7565b604082015262004a8d8c62006805565b5262004a998b62006805565b506040519062004aa982620055b5565b6001600160a01b031681526000602082015262004ac562006508565b604082015262004ad58b62006816565b5262004ae18a62006816565b5062004aec62007883565b986040519b62004afc8d620055e5565b8c526001600160a01b031660208c015262004b1d60243560408d0162007876565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c61012084015262004b5e60c4356200677c565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200253d57849362004b9f9362009dee863962007780565b03906000f0801562002c6c57602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b503462000359576020366003190112620003595762004c33620056ea565b62004c3d620078e0565b9062004c4d620001e7826200797e565b5060646200022560405162004c628162005599565b60018152602036818301376200679d565b50346200035957806003193601126200035957604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b8582821062004cd957505050620010c19250038362005656565b85546001600160a01b031684526001958601958895509301920162004cbf565b50346200035957806003193601126200035957604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b8582821062004d5f57505050620010c19250038362005656565b85546001600160a01b031684526001958601958895509301920162004d45565b503462000359576020806003193601126200036757604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003cc57859262004f3d575b5060016001600160401b03809316019082821162004f275780603f5416908662004df6336200797e565b92803b15620003675762004e299382916040518080978194636b2c1eef60e01b83528d6004840152602483019062005ab7565b0391600435905af1928315620007e057879362004f0a575b5050604054169360046040518096819382525afa928315620003cc57859362004eca575b50811691160362004e74575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162004f02575b62004ee5818362005656565b81010312620012a05762004efa829162007a46565b929062004e65565b503d62004ed9565b62004f1891929350620055d1565b62000717578490863862004e41565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162004f74575b62004f58818362005656565b81010312620012a05762004f6c9062007a46565b903862004dcc565b503d62004f4c565b503462000359576020806003193601126200036757600435916001600160401b0391828411620003675736602385011215620003675783600401359062004fc382620056bb565b9162004fd3604051938462005656565b8083528183019560249687600593841b83010191368311620008545788859101915b8383106200508157505050508384905b868216600381101562005077578551111562005062576200503b879185681fffffffffffffffe085871b168801015190620078d2565b91168681146200504f576001019062005005565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162004ff5565b5034620003595760403660031901126200035957600435620050b3620056d3565b803190620050c0620078b6565b50603e546001600160a01b039290620050dc9084168362008000565b50505092905083603f541686813b15620003595786916004604051809481936316989f6f60e21b83525af1801562000861576200519b575b50806200513391319462005127620078b6565b50603e54169062008000565b5050509390508482039182116200086c5703620051615762000432926200515a91620078d2565b1462007ce0565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b95620051ac620051339297620055d1565b959062005114565b50346200035957806003193601126200035957604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b858282106200521a57505050620010c19250038362005656565b85546001600160a01b031684526001958601958895509301920162005200565b5034620003595760031960203682011262000367576001600160401b0360043511620003675760c090600435360301126200035957604051906200527e826200557d565b600435600401356001600160401b0381116200036757620052a79060043691813501016200572d565b82526004356024810135602084015260448101356040840152620052ce90606401620057f1565b6060830152608460043501356001600160401b03811162000367573660238260043501011215620003675760048181350101356200530c81620056bb565b926200531c604051948562005656565b81845260208401923660248460051b836004350101011162000367576024816004350101935b60248460051b836004350101018510620053905760206200537e888860808201526200537360a46004350162005869565b60a0820152620068d2565b6040516001600160a01b039091168152f35b84356001600160401b038111620003c85760606004358401820136036023190112620003c85760405190620053c582620055b5565b6004358401810160248101358352620053e19060440162005718565b60208301526001600160401b03606482866004350101013511620012a05760249260209283926200542290369060043589010160648101350187016200581c565b6040820152815201950194905062005342565b8190346200557a57816003193601126200557a57806200545760a0926200557d565b62005461620078b6565b81528260208201528260408201528260608201526060608082015201526040516200548c81620055b5565b600281526040366020830137600a620054a5826200679d565b52600b620054b382620067c1565b5260405190620054c38262005599565b607b82526020820152604051620054da816200561e565b82815260405191620054ec836200557d565b8252600a60208301526402540be4006040830152604660608301526080820152606460a08201526001600160a01b03906200552790620068d2565b166001600160601b0360a01b8181603e541617603e55818160405416176040558181603f541617603f55818160425416176042558181604554161760455581816047541617604755604654161760465580f35b50fd5b60c081019081106001600160401b038211176200253d57604052565b604081019081106001600160401b038211176200253d57604052565b606081019081106001600160401b038211176200253d57604052565b6001600160401b0381116200253d57604052565b61018081019081106001600160401b038211176200253d57604052565b60e081019081106001600160401b038211176200253d57604052565b602081019081106001600160401b038211176200253d57604052565b608081019081106001600160401b038211176200253d57604052565b90601f801991011681019081106001600160401b038211176200253d57604052565b606435906001600160401b0382168203620006e557565b608435906001600160401b0382168203620006e557565b35906001600160401b0382168203620006e557565b6001600160401b0381116200253d5760051b60200190565b602435906001600160a01b0382168203620006e557565b600435906001600160a01b0382168203620006e557565b604435906001600160a01b0382168203620006e557565b35906001600160a01b0382168203620006e557565b9190604083820312620006e55760405192620057498462005599565b836200575582620056a6565b815260209182810135906001600160401b038211620006e557019280601f85011215620006e55783356200578981620056bb565b9462005799604051968762005656565b818652848087019260051b820101928311620006e55784809101915b838310620057c557505050500152565b8190620057d28462005718565b8152019101908490620057b5565b60a4359060ff82168203620006e557565b359060ff82168203620006e557565b6001600160401b0381116200253d57601f01601f191660200190565b81601f82011215620006e557803590620058368262005800565b9262005846604051948562005656565b82845260208383010111620006e557816000926020809301838601378301015290565b359061ffff82168203620006e557565b90815180825260208080930193019160005b8281106200589a575050505090565b83516001600160a01b0316855293810193928101926001016200588b565b90815180825260208080930193019160005b828110620058d9575050505090565b83516001600160e01b03191685529381019392810192600101620058ca565b602080820190808352835180925260409283810182858560051b8401019601946000925b8584106200592e575050505050505090565b90919293949596858062005966600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620058b8565b9901940194019295949391906200591c565b60005b8381106200598c5750506000910152565b81810151838201526020016200597b565b90602091620059b88151809281855285808601910162005978565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620059f95750505050505090565b909192939495848062005a19600193603f198682030187528a516200599d565b9801930193019194939290620059e8565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005a69575050505090565b83516001600160a01b03168552938101939281019260010162005a5a565b91959493909262005aa360809460a0855260a085019062005a2a565b966020840152604083015260608201520152565b906040602062005ad99360ff815116845201519181602082015201906200599d565b90565b81601f82011215620006e55780359162005af683620056bb565b9262005b06604051948562005656565b808452602092838086019260051b820101928311620006e5578301905b82821062005b32575050505090565b81356001600160e01b031981168103620006e557815290830190830162005b23565b9190918083036101a08112620006e55760405162005b7281620055e5565b80948335906001600160401b038211620006e55762005b939185016200572d565b815262005ba36020840162005718565b602082015260408301356001811015620006e55760408201526060830135606082015262005bd460808401620056a6565b608082015262005be760a08401620056a6565b60a082015262005bfa60c08401620057f1565b60c082015262005c0d60e0840162005869565b60e08201526101008084013590820152610120918284013560009381850b8203620012a05783015261014080850135906003821015620012a057830152604061015f199091011262000367576040519262005c688462005599565b6101609283820135906002821015620003595750845262005c8d906101800162005718565b60208401520152565b51908115158203620006e557565b6000805460081c60ff161562005cbe575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62005ce057505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262005d0e83620055b5565b62005d4a6024604051809362005d396020830197630667f9d760e41b89525180928585019062005978565b810103600481018452018262005656565b51925af1503d1562005d9a573d9062005d638262005800565b9162005d73604051938462005656565b82523d81602084013e5b602082805181010312620003595750602062005ad9910162005c96565b60609062005d7d565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005f3f578462005e4897549383831062005f1e575b83831062005efd575b83831062005edc575b83831062005ebb575b83831062005e9a575b83831062005e7c575b5082821062005e5f575b501062005e4a575b509050038362005656565b565b6001600160e01b031916815201803862005e3d565b83811b6001600160e01b0319168552909301926001018462005e35565b84901b6001600160e01b031916855290930192600101843862005e2b565b606085901b6001600160e01b03191686529481019460019092019162005e22565b608085901b6001600160e01b03191686529481019460019092019162005e19565b60a085901b6001600160e01b03191686529481019460019092019162005e10565b60c085901b6001600160e01b03191686529481019460019092019162005e07565b60e085901b6001600160e01b03191686529481019460019092019162005dfe565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005de2565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062006050578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005ff2565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062006161578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006103565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b81600782011062006272578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006214565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062006383578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006325565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062006494578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006436565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b816007820110620065a5578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006547565b906040918251809382549283835260209182840191600052826000209460005b81600782011062006697578462005e4897549383831062005f1e5783831062005efd5783831062005edc5783831062005ebb5783831062005e9a5783831062005e7c575082821062005e5f57501062005e4a57509050038362005656565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162006639565b604051906200671a82620055b5565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b038211176200253d57604052600782528160005b60e0811062006762575050565b6020906200676f6200670b565b8282850101520162006755565b600311156200678757565b634e487b7160e01b600052602160045260246000fd5b805115620067ab5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620067ab5760400190565b805160021015620067ab5760600190565b805160031015620067ab5760800190565b805160041015620067ab5760a00190565b805160051015620067ab5760c00190565b805160061015620067ab5760e00190565b805160071015620067ab576101000190565b805160081015620067ab576101200190565b90815180825260208092019182818360051b85019501936000915b848310620068775750505050505090565b9091929394958480620068c183856001950387528a51858060a01b03815116825283810151620068a7816200677c565b8483015260408091015191606080928201520190620058b8565b980193019301919493929062006866565b906040516117848082018281106001600160401b038211176200253d578291620170e4833903906000f0801562002c6c576040516116598082018281106001600160401b038211176200253d5782916201b22d833903906000f0801562002c6c576040516129c58082018281106001600160401b038211176200253d57829162018868833903906000f090811562002c6c57604051612a728082018281106001600160401b038211176200253d57829162014672833903906000f0801562002c6c576040516126e78082018281106001600160401b038211176200253d5782916200fbc5833903906000f0801562002c6c576040516122618082018281106001600160401b038211176200253d5782916200d964833903906000f090811562002c6c576040516123c68082018281106001600160401b038211176200253d578291620122ac833903906000f092831562002c6c57604051610d308082018281106001600160401b038211176200253d5782916200c3b0833903906000f095861562002c6c576040516108848082018281106001600160401b038211176200253d5782916200d0e0833903906000f095861562002c6c57604051986101408a018a81106001600160401b038211176200253d5760405260098a5260005b61012081106200776557506040519062006ac882620055b5565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620076f05762006b6c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006b7c8a6200679d565b5262006b88896200679d565b506040519062006b9882620055b5565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b8060078301106200767b5762006c3c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006c4c8962006816565b5262006c588862006816565b506040519062006c6882620055b5565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b806007830110620076065762006d0c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006d1c8862006827565b5262006d288762006827565b506040519062006d3882620055b5565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b806007830110620075915762006ddc94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006dec8762006839565b5262006df88662006839565b506040519062006e0882620055b5565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b8060078301106200751c5762006eac94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006ebc86620067c1565b5262006ec885620067c1565b506040519062006ed882620055b5565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b806007830110620074a75762006f7c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b604082015262006f8c85620067d2565b5262006f9884620067d2565b506040519062006fa882620055b5565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062007432576200704c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200705c84620067e3565b526200706883620067e3565b50604051906200707882620055b5565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b806007830110620073bd576200711c94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b60408201526200712c83620067f4565b526200713882620067f4565b50604051906200714882620055b5565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b8060078301106200734857620071ec94549181811062000e4d5781811062000e2d5781811062000e0d5781811062000ded5781811062000dcd5781811062000dad5781811062000d8f571062000d795750038262005656565b6040820152620071fc8262006805565b52620072088162006805565b5060405190611b4d808301918383106001600160401b038411176200253d576200724191620082a185396040835260408301906200684b565b9060208183039101526200725f845160c0835260c083019062005a2a565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b848410620072f55750505050505060a061ffff8185969701511691015203906000f0801562002c6c57603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062007337600193601f198682030188528660408d5180518452878060a01b0386820151168685015201519181604082015201906200599d565b9901940194019294939190620072aa565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162007193565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620070c3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006ff3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006f23565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006e53565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006d83565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006cb3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006be3565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006b13565b808b60208093620077756200670b565b920101520162006aae565b9062007795906040835260408301906200684b565b906020818303910152620077b382516101a080845283019062005a2a565b9160018060a01b038060208301511660208401526040820151600181101562006787576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b9084015261014080830151906200784b826200677c565b8401526101608092015191825192600284101562006787576101809360209286015201511691015290565b6001821015620067875752565b60006020604051620078958162005599565b8281520152604051620078a88162005599565b600081526000602082015290565b60405190620078c58262005599565b6060602083600081520152565b9190820180921162004f2757565b60405190620078ef8262005599565b600182528160005b602090818110156200791d5760209162007910620078b6565b90828501015201620078f7565b505050565b51906001600160a01b0382168203620006e557565b809291039160608312620006e5576040620079528262005c96565b93601f190112620006e55760408051916200796d8362005599565b602081015183520151602082015290565b6001600160401b039062007991620078b6565b5062007a2d6040918251906001600160601b03199060601b16602082015260148152620079be8162005599565b62007a1e835191620079d083620055b5565b600a83526fffffffffffffffffffffffffffffffff6020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a08301906200599d565b03601f19810184528362005656565b519062007a3a8262005599565b60048252602082015290565b51906001600160401b0382168203620006e557565b9190604083820312620006e5576040519262007a778462005599565b8362007a838262007a46565b815260209182810151906001600160401b038211620006e557019280601f85011215620006e557835162007ab781620056bb565b9462007ac7604051968762005656565b818652848087019260051b820101928311620006e55784809101915b83831062007af357505050500152565b819062007b008462007922565b815201910190849062007ae3565b90602082820312620006e55781516001600160401b038111620006e55762005ad9920162007a5b565b9062007b5160209194939460408452604084019062005a2a565b6001600160a01b03909416910152565b6040519062007b708262005599565b8162007b7b620078b6565b8152602062007b89620078b6565b910152565b62005ad991602062007baa835160408452604084019062005a2a565b92015190602081840391015262005ab7565b906020808351936040845260c062007c4862007be6875160e0604089015261012088019062007b8e565b62007c038589015191603f1992838a83030160608b015262007b8e565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e08901526200599d565b9501516101008501520151151591015290565b1562007c6357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b1562007ca357565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b1562007ce857565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e557829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007ff65790889493929162007fdf575b5062007d7d85918462008000565b9b93969298919a90508554168551938480926394074b0360e01b82525afa91821562007fd557839262007fb5575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b9081845288848062007deb60209b8c8095840152602483019062005a2a565b0381865af493841562007fab57908691829562007f6f575b50875163aa5106cb60e01b815294958591829162007e2591908d840162007b37565b0381855af492831562007f65579162007e5e93918893879362007f45575b5087518095819482938352868d840152602483019062005a2a565b03915af492831562007f3a579262007f05575b500362007e925750505091620035d4620035db9262005e4895941462007ce0565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d831162007f32575b62007f20818362005656565b81010312620006e55751903862007e71565b503d62007f14565b8451903d90823e3d90fd5b62007f5d9193503d8089833e620039be818362005656565b913862007e43565b86513d87823e3d90fd5b89809296508193503d831162007fa3575b62007f8c818362005656565b81010312620006e5575192859062007e2562007e03565b503d62007f80565b87513d88823e3d90fd5b62007fcd9192503d8085833e620039be818362005656565b903862007dab565b84513d85823e3d90fd5b9462007fef62007d7d96620055d1565b9462007d6f565b83513d87823e3d90fd5b906200800b620078b6565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa9182156200829657928092916200809f94829362008276575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007b37565b0381845af49283156200824957829362008253575b50620080e5929385541693855180926390ba52cf60e01b825281806020978895866004840152602483019062005a2a565b03915af49081156200824957908291829162008212575b50602486518096819363017187cd60e11b835260048301525afa9283156200820657819362008153575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e62008168818362005656565b8101918382840312620003595781516001600160401b0392838211620003f857019060c0828503126200035957855194620081a3866200557d565b8251865280830151908601528582015186860152620081c56060830162007a46565b6060860152620081d86080830162007a46565b608086015260a0820151928311620003595750620081f892910162007a5b565b60a082015238808062008126565b508351903d90823e3d90fd5b809250848092503d831162008241575b6200822e818362005656565b81010312620003675781905138620080fc565b503d62008222565b85513d84823e3d90fd5b620080e593506200826f903d8085833e620039be818362005656565b92620080b4565b6200828e9193503d8084833e620039be818362005656565b91386200806c565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a2646970667358221220a80c596eef37b94c13509ae3b3340b51a2ece92d921459577e0152e9809f1b6064736f6c63430008130033","sourceMap":"2095:1409:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;:::i;:::-;28446:19:91;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;:::-;28475:48;2095:1409:92;28475:48:91;;;;:::i;:::-;;;:::i;:::-;;2095:1409:92;;;;;:::i;:::-;28463:1:91;2095:1409:92;;1220:14:3;2095:1409:92;1220:14:3;;;3693:3:91;28586:19;2095:1409:92;;28586:19:91;;:::i;:::-;2095:1409:92;;28616:21:91;;;;;;2095:1409:92;;-1:-1:-1;;;28616:21:91;;-1:-1:-1;;;;;2095:1409:92;;;;28616:21:91;;2095:1409:92;;;1220:14:3;;2095:1409:92;28616:21:91;2095:1409:92;1220:14:3;2095:1409:92;28616:21:91;;;;;;;;;;2095:1409:92;;;;;;;;:::i;:::-;28704:12:91;2095:1409:92;;28680:61:91;1220:14:3;28680:61:91;;2095:1409:92;28817:38:91;;;;;2095:1409:92;;-1:-1:-1;;;28817:38:91;;-1:-1:-1;;;2095:1409:92;28817:38:91;;2095:1409:92;28817:38:91;2095:1409:92;;;28817:38:91;;;;;;;;;;;;;;;2095:1409:92;-1:-1:-1;28865:22:91;540:42:1;2095:1409:92;;-1:-1:-1;;;28865:53:91;;540:42:1;;2095:1409:92;28865:53:91;;2095:1409:92;540:42:1;;;;;;;;2095:1409:92;;;28865:53:91;;2095:1409:92;;540:42:1;;2095:1409:92;;;;;28865:53:91;;;;;;;;2095:1409:92;28928:14:91;;;;;;2095:1409:92;;;;;;;;;;;;;28928:14:91;;;;;;;;;;2095:1409:92;;;28928:14:91;;;;;:::i;:::-;2095:1409:92;;28928:14:91;2095:1409:92;;;;;;28928:14:91;2095:1409:92;;;;;;;;;28928:14:91;2095:1409:92;;;28865:53:91;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2095:1409:92;;;;;;;;;28817:38:91;;;;;;;;:::i;:::-;2095:1409:92;;28817:38:91;;;;;;2095:1409:92;;;;28817:38:91;2095:1409:92;;;;;;;;;28616:21:91;;;;;;;:::i;:::-;;;;;;2095:1409:92;;;;;;;;;28616:21:91;2095:1409:92;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;;:::i;:::-;;;;;;;;;29464:9:91;3693:3;35553:42;2095:1409:92;;;;:::i;:::-;-1:-1:-1;35580:14:91;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;;;;35553:42:91;:::i;:::-;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;29522:45:91;;;2095:1409:92;29522:45:91;;2095:1409:92;29522:45:91;2095:1409:92;;;;;;;;:::i;:::-;29522:45:91;;;;;;;;;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;29522:45:91;29659:29;2095:1409:92;;29659:29:91;;;:::i;:::-;2095:1409:92;;;;;;;;;;29707:22:91;;;;;;;;;;;;;2095:1409:92;29707:26:91;;2095:1409:92;;29769:25:91;2095:1409:92;;-1:-1:-1;29810:9:91;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;29854:36:91;;;:::i;:::-;29810:81;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;29810:81:91;;2095:1409:92;;29810:81:91;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81:91;;;;;;;;;;29765:281;;;29522:45;29765:281;;;29464:9;3693:3;2095:1409:92;;35553:42:91;;-1:-1:-1;;;;;2095:1409:92;;;:::i;:::-;-1:-1:-1;35580:14:91;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;35553:42:91;:::i;:::-;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;30148:45:91;;;2095:1409:92;30148:45:91;;2095:1409:92;;;;;;:::i;:::-;30148:45:91;;;;;;;;;;;;29765:281;2095:1409:92;;;30148:74:91;2095:1409:92;;30317:66:91;2095:1409:92;;30256:51:91;2095:1409:92;;30264:22:91;30256:51;:::i;:::-;30325:32;30317:66;:::i;2095:1409:92:-;;;-1:-1:-1;;;2095:1409:92;;29522:45:91;2095:1409:92;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;30148:45:91;;;;29522;30148;;29522;30148;;;;;;29522;30148;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;2095:1409:92;30148:45:91;;2095:1409:92;;;;30148:45:91;;;-1:-1:-1;30148:45:91;;;2095:1409:92;;;;;;;;;;29810:81:91;;;;;:::i;:::-;2095:1409:92;;29810:81:91;;;;2095:1409:92;;;29765:281:91;29912:24;;;;;;;;2095:1409:92;29912:24:91;29908:138;;29765:281;;;29522:45;29765:281;;;;;;;29908:138;29952:9;2095:1409:92;;;;-1:-1:-1;;;;;2095:1409:92;;29986:36:91;;;:::i;:::-;29952:83;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;29952:83:91;;2095:1409:92;;29952:83:91;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;29952:83:91;;;;;;;;;29522:45;29952:83;;;;;;29908:138;;;;;;;;;;29952:83;;;;:::i;:::-;;;;;2095:1409:92;;;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;29522:45:91;2095:1409:92;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;29707:22:91;;;29522:45;29707:22;;29522:45;29707:22;;;;;;29522:45;29707:22;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;29707:22:91;;;2095:1409:92;;;;29707:22:91;;;-1:-1:-1;29707:22:91;;;2095:1409:92;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;29522:45:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;29522:45:91;;;;;;;-1:-1:-1;29522:45:91;;;2095:1409:92;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;:::i;:::-;15025:1:91;2095:1409:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;15068:178:91;2095:1409:92;15068:178:91;;2095:1409:92;;;;;;15214:17:91;2095:1409:92;;;;;;15214:17:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15068:178:91;;2095:1409:92;15038:218:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;15297:180:91;2095:1409:92;15297:180:91;;2095:1409:92;;;;;;15444:18:91;2095:1409:92;;;;;;15444:18:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15297:180:91;;2095:1409:92;15267:220:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;15528:178:91;2095:1409:92;15528:178:91;;2095:1409:92;;;;;;15674:17:91;2095:1409:92;;;;;;15674:17:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15528:178:91;;2095:1409:92;15498:218:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;15757:182:91;2095:1409:92;15757:182:91;;2095:1409:92;;;;;;15905:19:91;2095:1409:92;;;;;;15905:19:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15757:182:91;;2095:1409:92;15727:222:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;-1:-1:-1;;;;;2095:1409:92;;;;15990:190:91;;2095:1409:92;;;;;:::i;:::-;;15990:190:91;;2095:1409:92;15960:230:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;16213:42:91;;;;;;;;;-1:-1:-1;;;;;16213:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;16201:54;2095:1409:92;;-1:-1:-1;;;;;;2095:1409:92;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;16213:42:91;-1:-1:-1;;;2095:1409:92;;;;;15214:17:91;2095:1409:92;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;2095:1409:92;;;;;;;;;2130:18:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;35553:42:91;2095:1409:92;;:::i;:::-;;;:::i;35553:42:91:-;2095:1409:92;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;:::i;:::-;;;30474:26:91;;;;;2095:1409:92;;-1:-1:-1;;;30474:26:91;;-1:-1:-1;;;;;2095:1409:92;;;;30474:26:91;;2095:1409:92;;;;30474:26:91;2095:1409:92;;;30474:26:91;;;;;;;;;;;;;2095:1409:92;30510:56:91;;;;;;;2095:1409:92;;;;;;;;;;;;;;;30510:56:91;;2095:1409:92;30510:56:91;;2095:1409:92;;;;;;30510:56:91;;;;;;;;;;;2095:1409:92;3693:3:91;;30576:9;3693:3;2095:1409:92;30576:56:91;;;;;2095:1409:92;;;3053:7:91;2095:1409:92;;;;;;;;;;;;30576:56:91;;2095:1409:92;;30576:56:91;;2095:1409:92;;;;;;:::i;:::-;30576:56:91;;;;;;;;;;2095:1409:92;;30576:56:91;;;;:::i;:::-;2095:1409:92;;30576:56:91;2095:1409:92;30576:56:91;2095:1409:92;;;30510:56:91;;;;:::i;:::-;2095:1409:92;;30510:56:91;;;;;2095:1409:92;;;30474:26:91;;;;:::i;:::-;2095:1409:92;;30474:26:91;;;;;2095:1409:92;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;:::i;:::-;;;16453:29:91;;;;;;;;-1:-1:-1;;;;;16453:29:91;;;;;;;;;;;;;;;;;;;;2095:1409:92;;16524:28:91;;;;;;;;-1:-1:-1;;;;;16524:28:91;;;;;;;;;;;;;;;;;;;2095:1409:92;;16593:27:91;;;;;;;;-1:-1:-1;;;;;16593:27:91;;;;;;;;;;;;;;;;;;;;2095:1409:92;;16664:28:91;;;;;;;;-1:-1:-1;;;;;16664:28:91;;;;;;;;;;;;;;;;;;;2095:1409:92;;16747:35:91;;;;;;;;-1:-1:-1;;;;;16747:35:91;;;;;;;;;;;;;;;;;;;;2095:1409:92;;16820:23:91;;;;;;;;-1:-1:-1;;;;;16820:23:91;;;;;;;;;;;;;;;;;;;;2095:1409:92;;16878:21:91;;;;;;;;-1:-1:-1;;;;;16878:21:91;;;;;;;;;;;;;;;;;;;;16950:26;;:::i;:::-;2095:1409:92;;;;;;;:::i;:::-;;;;;;;;;17017:189:91;2095:1409:92;17017:189:91;;2095:1409:92;;;;;;17173:18:91;2095:1409:92;;;;;;17173:18:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17017:189:91;;2095:1409:92;16987:229:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;17257:187:91;2095:1409:92;17257:187:91;;2095:1409:92;;;;;;17412:17:91;2095:1409:92;;;;;;17412:17:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17257:187:91;;2095:1409:92;17227:227:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;17495:187:91;2095:1409:92;17495:187:91;;2095:1409:92;;;;;;17650:17:91;2095:1409:92;;;;;;17650:17:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17495:187:91;;2095:1409:92;17465:227:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;17733:191:91;2095:1409:92;17733:191:91;;2095:1409:92;;;;;;17890:19:91;2095:1409:92;;;;;;17890:19:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17733:191:91;;2095:1409:92;17703:231:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;-1:-1:-1;;;;;2095:1409:92;;;;17975:199:91;;2095:1409:92;;;;;:::i;:::-;;17975:199:91;;2095:1409:92;17945:239:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;18225:187:91;2095:1409:92;18225:187:91;;2095:1409:92;;;;;;18380:17:91;2095:1409:92;;;;;;18380:17:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18225:187:91;;2095:1409:92;18195:227:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;18463:187:91;2095:1409:92;18463:187:91;;2095:1409:92;;;;;;18618:17:91;2095:1409:92;;;;;;18618:17:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18463:187:91;;2095:1409:92;18433:227:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;18700:42:91;;;;;;;;;-1:-1:-1;;;;;18700:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2095:1409:92;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16878:21:91;2095:1409:92;;;;;;;;;16878:21:91;-1:-1:-1;;;2095:1409:92;;;;;;;;16820:23:91;-1:-1:-1;;;2095:1409:92;;;;;;;;16747:35:91;-1:-1:-1;;;2095:1409:92;;;;;;;;16664:28:91;-1:-1:-1;;;2095:1409:92;;;;;;;;16593:27:91;-1:-1:-1;;;2095:1409:92;;;;;;;;16453:29:91;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;24348:21:91;;;;;-1:-1:-1;;;;;24348:21:91;;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;;24413:23:91;;;;;-1:-1:-1;;;;;24413:23:91;;;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;;24483:25:91;;;;;-1:-1:-1;;;;;24483:25:91;;;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;;24553:23:91;;;;;-1:-1:-1;;;;;24553:23:91;;;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;24617:200:91;2095:1409:92;24617:200:91;;2095:1409:92;;;;;;24779:23:91;2095:1409:92;;;;;;24779:23:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24617:200:91;;2095:1409:92;24587:240:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;24867:198:91;2095:1409:92;24867:198:91;;2095:1409:92;;;;;;25027:23:91;2095:1409:92;;;;;;25027:23:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24867:198:91;;2095:1409:92;24837:238:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;25115:206:91;2095:1409:92;25115:206:91;;2095:1409:92;;;;;;25278:28:91;2095:1409:92;;;;;;25278:28:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25115:206:91;;2095:1409:92;25085:246:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;25371:212:91;2095:1409:92;25371:212:91;;2095:1409:92;;;;;;25534:34:91;2095:1409:92;;;;;;25534:34:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25371:212:91;;2095:1409:92;25341:252:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;25646:45:91;;;;;;;;;;-1:-1:-1;;;;;25646:45:91;;;;;;2095:1409:92;25646:45:91;;;2095:1409:92;25646:45:91;;;;2095:1409:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;25646:45:91;;;;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;25706:49:91;;2095:1409:92;25706:49:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24348:21:91;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;2095:1409:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;-1:-1:-1;2095:1409:92;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;-1:-1:-1;2095:1409:92;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;;;;:::i;:::-;;1671:64:2;;2095:1409:92;;;;;;;6628:51:16;;2095:1409:92;;6628:51:16;;;;;;;;2095:1409:92;6628:51:16;;;2095:1409:92;;;;;;:::i;:::-;;;;;;;6628:51:16;234:9:40;;6628:51:16;;;;;;:::i;:::-;2095:1409:92;392:159:16;131:42;392:159;;;2095:1409:92;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;2095:1409:92;19669:43:91;;;;2095:1409:92;;;19735:29:91;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;;;;;;;2095:1409:92;19735:29:91;;;;;;2095:1409:92;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;19723:41:91;2095:1409:92;;;19723:41:91;2095:1409:92;;;19785:28:91;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;19785:28:91;;;;;2095:1409:92;;;19774:39:91;2095:1409:92;;;19774:39:91;2095:1409:92;;;19834:27:91;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;19834:27:91;;;;;2095:1409:92;;;19823:38:91;2095:1409:92;;;19823:38:91;2095:1409:92;;;19888:35:91;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;19888:35:91;;;;;2095:1409:92;;;19871:52:91;2095:1409:92;;;19871:52:91;2095:1409:92;;;19946:28:91;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;19946:28:91;;;;;2095:1409:92;;;19933:41:91;2095:1409:92;;;19933:41:91;2095:1409:92;;;19995:21:91;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;19995:21:91;;;;;2095:1409:92;;;19984:32:91;2095:1409:92;;;19984:32:91;2095:1409:92;;;20037:23:91;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;20037:23:91;;;;;;21606:229;2095:1409:92;21918:657:91;2095:1409:92;;;;;;;;;;;;;20026:34:91;2095:1409:92;;;20026:34:91;2095:1409:92;20111:26:91;;:::i;:::-;3693:3;;;19723:41;3693:3;2095:1409:92;;;;;;;:::i;:::-;;;;20178:191:91;;;2095:1409:92;;;:::i;:::-;;20178:191:91;;2095:1409:92;20148:231:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19774:39;3693:3;2095:1409:92;;;;;;;:::i;:::-;;;;20420:189:91;;;2095:1409:92;;;:::i;:::-;;20420:189:91;;2095:1409:92;20390:229:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19823:38;3693:3;2095:1409:92;;;;;;;:::i;:::-;;;;20660:189:91;;;2095:1409:92;;;:::i;:::-;;20660:189:91;;2095:1409:92;20630:229:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19933:41;3693:3;2095:1409:92;;;;;;;:::i;:::-;;;;20900:193:91;;;2095:1409:92;;;:::i;:::-;;20900:193:91;;2095:1409:92;20870:233:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19871:52;3693:3;2095:1409:92;;;;;;;:::i;:::-;;;;21144:201:91;;;2095:1409:92;;;:::i;:::-;;21144:201:91;;2095:1409:92;21114:241:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19984:32;3693:3;2095:1409:92;;;;;;;:::i;:::-;;;;21396:189:91;;;2095:1409:92;;;:::i;:::-;;21396:189:91;;2095:1409:92;21366:229:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;21636:189:91;;;2095:1409:92;;;:::i;:::-;;21636:189:91;;2095:1409:92;21606:229:91;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;2095:1409:92;;;;;;;;:::i;:::-;;;21918:657:91;;;2095:1409:92;;21918:657:91;;;:::i;:::-;2095:1409:92;;;21918:657:91;;2095:1409:92;;21918:657:91;;;3693:3;2095:1409:92;;21918:657:91;;3693:3;2095:1409:92;;21918:657:91;;3251:7;2095:1409:92;;21918:657:91;;3251:7;;21918:657;;;2095:1409:92;22395:2:91;21918:657;;;3251:7;2095:1409:92;21918:657:91;;;3251:7;21918:657;;;2095:1409:92;;;21858:727:91;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;21858:727:91;;;;;2095:1409:92;;;;21846:739:91;2095:1409:92;;;21846:739:91;2095:1409:92;;;19723:41:91;2095:1409:92;;;19723:41:91;2095:1409:92;;;19823:38:91;2095:1409:92;;;19823:38:91;2095:1409:92;;;19933:41:91;2095:1409:92;;;19933:41:91;2095:1409:92;;;19871:52:91;2095:1409:92;;;19871:52:91;2095:1409:92;;;19774:39:91;2095:1409:92;;;19774:39:91;2095:1409:92;;;19984:32:91;2095:1409:92;;;19984:32:91;2095:1409:92;20026:34:91;2095:1409:92;;;20026:34:91;2095:1409:92;;;21858:727:91;2095:1409:92;;;;;;;;;21858:727:91;-1:-1:-1;;;2095:1409:92;;;;;;;;20037:23:91;2095:1409:92;;;;;;;;;;;19735:29:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;26191:12:91;;;;26199:3;26191:12;;2095:1409:92;26191:12:91;;2095:1409:92;;1220:14:3;;2095:1409:92;26191:12:91;;;;;;;;;;;;;;;;2095:1409:92;26169:35:91;;;;:::i;:::-;26153:51;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;26252:12:91;;;26260:3;2095:1409:92;26252:12:91;;2095:1409:92;26252:12:91;;;;;;;;;;;;;;;2095:1409:92;26230:35:91;;;;:::i;:::-;26214:51;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;26313:12:91;;;;26321:3;26313:12;;2095:1409:92;26313:12:91;;2095:1409:92;26313:12:91;;;;;;;;;;;;;;;2095:1409:92;26291:35:91;;;;:::i;:::-;26275:51;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;3693:3:91;;;;2095:1409:92;;26390:12:91;;;;;2095:1409:92;26390:12:91;;2095:1409:92;26390:12:91;;;;;;;;;;;;;;;;2095:1409:92;26375:27:91;;;;:::i;:::-;-1:-1:-1;;;;;2095:1409:92;;;;;;;26427:12:91;;;26260:3;2095:1409:92;26427:12:91;;2095:1409:92;26427:12:91;2095:1409:92;26427:12:91;2095:1409:92;26427:12:91;;;;;;;;;;;;2095:1409:92;26412:27:91;;;;;:::i;:::-;2095:1409:92;;;;;;26464:12:91;;;;2095:1409:92;26464:12:91;;2095:1409:92;26464:12:91;;;;;;;;;;;;;;;;2095:1409:92;26449:27:91;;;;;:::i;:::-;2095:1409:92;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;3693:3:91;2095:1409:92;;26549:12:91;;;;;2095:1409:92;26549:12:91;;2095:1409:92;26549:12:91;;;;;;;;;;;;;;;;2095:1409:92;26541:24:91;;;;;;2095:1409:92;;-1:-1:-1;;;26541:24:91;;;2095:1409:92;;;;26541:24:91;;2095:1409:92;;1220:14:3;;;2095:1409:92;;;;;26541:24:91;2095:1409:92;1220:14:3;2095:1409:92;26541:24:91;;;;;;;;;;;;;2095:1409:92;;;;;26583:12:91;;;26260:3;2095:1409:92;26583:12:91;;2095:1409:92;26583:12:91;;;;;;;;;;;;;;;;2095:1409:92;26575:24:91;;;;;;2095:1409:92;;;26575:24:91;;;;2095:1409:92;;26575:24:91;;2095:1409:92;1220:14:3;;;;2095:1409:92;26575:24:91;;1220:14:3;26575:24:91;;;;;;;;;;;;;;2095:1409:92;;;;;26617:12:91;;;2095:1409:92;26617:12:91;;2095:1409:92;26617:12:91;;;;;;;;;;;;;;;;2095:1409:92;26609:24:91;;;;;;2095:1409:92;;;;26609:24:91;;;2095:1409:92;;26609:24:91;;2095:1409:92;1220:14:3;;;;2095:1409:92;26609:24:91;;1220:14:3;26609:24:91;;;;;;;;;;;;;;2095:1409:92;26644:16:91;;;;;26696;26644;;:::i;:::-;2095:1409:92;26670:16:91;;;;:::i;:::-;2095:1409:92;26696:16:91;:::i;:::-;2095:1409:92;;;;;;;:::i;:::-;26780:12:91;2095:1409:92;;26756:61:91;;;;2095:1409:92;26828:33:91;;;;;2095:1409:92;;-1:-1:-1;;;26828:33:91;;-1:-1:-1;;;2095:1409:92;26828:33:91;;2095:1409:92;;;;;;;;;;26828:33:91;;;;;;;;;;;;;;2095:1409:92;-1:-1:-1;26871:22:91;540:42:1;2095:1409:92;;-1:-1:-1;;;26871:53:91;;540:42:1;;2095:1409:92;26871:53:91;;2095:1409:92;540:42:1;;;;;;;;2095:1409:92;;;;;540:42:1;;2095:1409:92;;;;26871:53:91;;;;;;;;2095:1409:92;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26871:53:91;;;;;;;;;;;;;:::i;:::-;;;;26828:33;;;;;;;;;:::i;:::-;2095:1409:92;;26828:33:91;;;;;;;26609:24;;;;:::i;:::-;2095:1409:92;;26609:24:91;;;;;2095:1409:92;;;26617:12:91;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26617:12:91;;;;;;;;26575:24;;;;:::i;:::-;2095:1409:92;;26575:24:91;;;;2095:1409:92;;;;26575:24:91;2095:1409:92;;;;;;;;;26575:24:91;2095:1409:92;;;26583:12:91;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26583:12:91;;;;;;;;26541:24;;;;:::i;:::-;2095:1409:92;;26541:24:91;;;;26549:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26549:12:91;;;;;;;;;26464;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26464:12:91;;;;;;;;26427;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26427:12:91;;;;;;;;26390;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26390:12:91;;;;;;;;;26313;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26291:35:91;1220:14:3;;:::i;:::-;26313:12:91;;;;;;;26252;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26230:35:91;1220:14:3;;:::i;:::-;26252:12:91;;;;;;;26191;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26169:35:91;1220:14:3;;:::i;:::-;26191:12:91;;;;;;;2095:1409:92;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;:::i;:::-;;;:::i;:::-;34850:14:91;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;34081:38:91;;;;;2095:1409:92;;-1:-1:-1;;;34081:38:91;;2095:1409:92;;34081:38:91;;2095:1409:92;;;;;;;;;;;34081:38:91;;;;;;;;2095:1409:92;34212:64:91;;2095:1409:92;34212:64:91;;;:::i;:::-;2095:1409:92;;;;;-1:-1:-1;;;34319:25:91;;2095:1409:92;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;34319:25:91;;;;;;;;;;;2095:1409:92;;;;;;;;;;;;;;34376:11:91;;;2095:1409:92;34376:11:91;;2095:1409:92;;;;;;:::i;:::-;34376:11:91;:9;;:11;;;;;;;;;;;;;;2095:1409:92;-1:-1:-1;2095:1409:92;;-1:-1:-1;;;34391:43:91;;2095:1409:92;;;;;;34391:43:91;;2095:1409:92;;34391:43:91;;;:::i;:::-;;34376:9;;34391:43;;;;;;;2095:1409:92;34391:43:91;2095:1409:92;34391:43:91;;;;;2095:1409:92;;;;;;;;;;;34391:52:91;;;2095:1409:92;34391:52:91;;2095:1409:92;;;;;;:::i;:::-;34391:52:91;34376:9;;34391:52;;;;;;;;;;2095:1409:92;34376:67:91;;2095:1409:92;;34604:46:91;34660:49;34554:19;34546:48;2095:1409:92;;34554:19:91;;34546:48;:::i;:::-;34612:17;34604:46;:::i;:::-;34668:15;34660:49;:::i;:::-;2095:1409:92;;;;;-1:-1:-1;;;27226:25:91;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;27226:25:91;;;;;;;:48;:25;;;;;;;2095:1409:92;-1:-1:-1;2095:1409:92;;-1:-1:-1;;;27226:48:91;;2095:1409:92;;;;;;27226:48:91;;;:::i;:::-;;34376:9;;27226:48;;;;;;;;;;;2095:1409:92;27308:29:91;;2095:1409:92;27308:29:91;;;:::i;:::-;2095:1409:92;;;;;;:::i;:::-;;;;27183:173:91;;2095:1409:92;;;;;;-1:-1:-1;;;27421:25:91;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;27421:25:91;;;;;;;:45;:25;;;;;;;-1:-1:-1;2095:1409:92;;-1:-1:-1;;;27421:45:91;;2095:1409:92;;;;;;27421:45:91;;;:::i;:::-;;34376:9;;27421:45;;;;;;;;;;;2095:1409:92;27500:26:91;;;;:::i;:::-;2095:1409:92;;;;;;:::i;:::-;;;;27378:167:91;;2095:1409:92;;;;;;;:::i;:::-;1671:64:2;;;2095:1409:92;;;;;;:::i;:::-;;;;27147:608:91;;2095:1409:92;;;27147:608:91;;2095:1409:92;27147:608:91;;;;;3693:3;27147:608;;;;;;234:9:40;2095:1409:92;27147:608:91;;;;2095:1409:92;27147:608:91;;3251:7;27147:608;;;2095:1409:92;;;;;;;:::i;:::-;;;27115:679:91;2095:1409:92;27115:679:91;;234:9:40;2095:1409:92;;;;;;:::i;:::-;;;;;;234:9:40;;2095:1409:92;234:9:40;;;;27856:18:91;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;28104:33:91;;;;;2095:1409:92;;-1:-1:-1;;;28104:33:91;;-1:-1:-1;;;2095:1409:92;28104:33:91;;2095:1409:92;;;;;;;;;;;;28104:33:91;;;;;;;;234:9:40;-1:-1:-1;;28147:20:91;234:9:40;-1:-1:-1;;;;;2095:1409:92;;28147:45:91;;;;;2095:1409:92;;;;;;;;;;;28147:45:91;;2095:1409:92;234:9:40;;28147:45:91;2095:1409:92;;28147:45:91;;234:9:40;2095:1409:92;;;;;;;;234:9:40;2095:1409:92;;234:9:40;;;;;;;;;;;;;;;;;28147:45:91;;;;;;;;;;;;;;;;;;;234:9:40;2095:1409:92;;;;2508:20:60;;2095:1409:92;2508:20:60;;;2095:1409:92;;;;;;;;;:::i;:::-;2508:20:60;234:9:40;;2508:20:60;;;;;;:::i;:::-;2095:1409:92;2498:31:60;;2095:1409:92;;;;;;28147:45:91;;;;;:::i;:::-;2095:1409:92;;28147:45:91;;;234:9:40;;;;;;;;;2095:1409:92;234:9:40;;;;;;;;;;;;;;;:::i;:::-;2095:1409:92;;234:9:40;;;;;;;;;;;;;;;28104:33:91;;;;:::i;:::-;2095:1409:92;;28104:33:91;;;;234:9:40;2095:1409:92;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;2095:1409:92;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27421:45:91;27500:26;27421:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;27226:48;2095:1409:92;27226:48:91;;;27308:29;27226:48;;;;;;;;;;:::i;:::-;;;;;2095:1409:92;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;34391:52:91;;;;2095:1409:92;34391:52:91;;2095:1409:92;34391:52:91;;;;;;2095:1409:92;34391:52:91;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;34391:52:91;;;;;;;-1:-1:-1;34391:52:91;;:43;;;;;;;;;;;;;:::i;:::-;;;;34376:11;;;;;2095:1409:92;34376:11:91;;2095:1409:92;34376:11:91;;;;;;2095:1409:92;34376:11:91;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;;34391:43:91;34376:11;;;;;-1:-1:-1;34376:11:91;;34319:25;2095:1409:92;34319:25:91;;;;2095:1409:92;34319:25:91;;;;;;;;;;:::i;:::-;;;;;;34081:38;2095:1409:92;34081:38:91;;;34212:64;34081:38;;:::i;:::-;;;;;;2095:1409:92;;;;;;;;;;;;;;;;:::i;:::-;;;;23178:21:91;;;;;-1:-1:-1;;;;;23178:21:91;;;;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;;23241:28:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:1409:92;;;;;;:::i;:::-;23344:1:91;2095:1409:92;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2095:1409:92;;;;;23387:201:91;;;2095:1409:92;;;;;23549:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23387:201:91;;2095:1409:92;23357:241:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;;:::i;:::-;;;;23639:187:91;;;;2095:1409:92;;;:::i;:::-;;23639:187:91;;2095:1409:92;23609:227:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3651:2:91;2095:1409:92;;;;;;3251:7:91;2095:1409:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;7896:27:91;;;;:::i;:::-;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;8047:58;;;2095:1409:92;;;;;;:::i;:::-;;;;7986:700:91;;;2095:1409:92;7986:700:91;2095:1409:92;7986:700:91;;3251:7;3053;2095:1409:92;7986:700:91;;2095:1409:92;;;7986:700:91;;3693:3;3110:2;2095:1409:92;7986:700:91;;3693:3;3001:2;2095:1409:92;7986:700:91;;3251:7;3606:3;2095:1409:92;7986:700:91;;3251:7;7986:700;;2095:1409:92;7986:700:91;;3251:7;7986:700;;3251:7;7986:700;;2095:1409:92;;;23973:42:91;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;2095:1409:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;2095:1409:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;-1:-1:-1;2095:1409:92;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;35553:42:91;3693:3;29464:9;3693:3;2095:1409:92;;;:::i;:::-;;;35580:14:91;2095:1409:92;;35553:42:91;;:::i;:::-;2095:1409:92;;;;;;;;;;;;;;;;;;29522:45:91;;;;;;;;;;;;;;2095:1409:92;29522:45:91;;2095:1409:92;;;;;:::i;:::-;29522:45:91;;;;;;;;;2095:1409:92;29522:45:91;;;2095:1409:92;;;;;;;;;;;;;;;;;;29659:29:91;;;2095:1409:92;29659:29:91;;:::i;:::-;2095:1409:92;;;;;;;;;;29707:22:91;;;;;;;;;2095:1409:92;29707:22:91;;;2095:1409:92;29707:26:91;;2095:1409:92;;29854:36:91;2095:1409:92;29810:9:91;2095:1409:92;;29854:36:91;;:::i;:::-;29810:81;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;29810:81:91;;2095:1409:92;;29810:81:91;;2095:1409:92;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81:91;;;;;;;;;;;2095:1409:92;29810:81:91;;;;;2095:1409:92;3693:3:91;35553:42;3693:3;29464:9;3693:3;2095:1409:92;;;:::i;:::-;;;35580:14:91;2095:1409:92;;35553:42:91;;:::i;:::-;2095:1409:92;;;;;;;;;;;;;30148:45:91;;;;;;;;;;2095:1409:92;30148:45:91;;2095:1409:92;;;;;:::i;:::-;30148:45:91;;;;;;;;;2095:1409:92;30148:45:91;;;2095:1409:92;30148:74:91;;2095:1409:92;;30264:22:91;30317:66;30264:22;;;30256:51;30264:22;;30256:51;:::i;2095:1409:92:-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;30148:45:91;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;30148:45:91;;;;;;;;29810:81;;;;:::i;:::-;;;;2095:1409:92;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;29707:22:91;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;29707:22:91;;;;;;;;2095:1409:92;;;;;;;;;;;;29522:45:91;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;29522:45:91;;;;;;;;;2095:1409:92;;;;;;;;;;;;;2592:26:8;2095:1409:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;34850:14:91;2095:1409:92;;:::i;:::-;34850:14:91;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;;;34850:14:91;:::i;2095:1409:92:-;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;2095:1409:92;19669:43:91;;2095:1409:92;;;19735:29:91;;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;2095:1409:92;19735:29:91;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;19723:41:91;2095:1409:92;;;19723:41:91;2095:1409:92;;;19785:28:91;;;;;;;-1:-1:-1;;;;;19785:28:91;;;;;;;;;;;;2095:1409:92;19785:28:91;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;19774:39:91;2095:1409:92;;;19774:39:91;2095:1409:92;;;19834:27:91;;;;;;;-1:-1:-1;;;;;19834:27:91;;;;;;;;;;;;2095:1409:92;19834:27:91;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;19823:38:91;2095:1409:92;;;19823:38:91;2095:1409:92;;;19888:35:91;;;;;;;-1:-1:-1;;;;;19888:35:91;;;;;;;;;;;;2095:1409:92;19888:35:91;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;19871:52:91;2095:1409:92;;;19871:52:91;2095:1409:92;;;19946:28:91;;;;;;;-1:-1:-1;;;;;19946:28:91;;;;;;;;;;;;2095:1409:92;19946:28:91;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;19933:41:91;2095:1409:92;;;19933:41:91;2095:1409:92;;;19995:21:91;;;;;;;-1:-1:-1;;;;;19995:21:91;;;;;;;;;;;;2095:1409:92;19995:21:91;;;;;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;19984:32:91;2095:1409:92;;;19984:32:91;2095:1409:92;;;20037:23:91;;;;;;;-1:-1:-1;;;;;20037:23:91;;;;;;;;;;;;2095:1409:92;20037:23:91;;;;;;20026:34;2095:1409:92;;-1:-1:-1;;;;;;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;20111:26:91;;:::i;:::-;19723:41;3693:3;2095:1409:92;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;:::i;:::-;;;;;20178:191:91;;2095:1409:92;;;:::i;:::-;;20178:191:91;;2095:1409:92;20148:231:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19774:39:91;3693:3;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;:::i;:::-;;;;;20420:189:91;;2095:1409:92;;;:::i;:::-;;20420:189:91;;2095:1409:92;20390:229:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19823:38:91;3693:3;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;:::i;:::-;;;;;20660:189:91;;2095:1409:92;;;:::i;:::-;;20660:189:91;;2095:1409:92;20630:229:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19933:41:91;3693:3;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;:::i;:::-;;;;;20900:193:91;;2095:1409:92;;;:::i;:::-;;20900:193:91;;2095:1409:92;20870:233:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19871:52:91;3693:3;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;:::i;:::-;;;;;21144:201:91;;2095:1409:92;;;:::i;:::-;;21144:201:91;;2095:1409:92;21114:241:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19984:32:91;3693:3;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;:::i;:::-;;;;;21396:189:91;;2095:1409:92;;;:::i;:::-;;21396:189:91;;2095:1409:92;21366:229:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;-1:-1:-1;;;;;2095:1409:92;;;;;21636:189:91;;2095:1409:92;;;:::i;:::-;;21636:189:91;;2095:1409:92;21606:229:91;;;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;2095:1409:92;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;21918:657:91;;2095:1409:92;21918:657:91;2095:1409:92;;;21918:657:91;;;:::i;:::-;2095:1409:92;;;21918:657:91;;2095:1409:92;;21918:657:91;;;3693:3;2095:1409:92;;21918:657:91;;3693:3;2095:1409:92;21918:657:91;;;3251:7;2095:1409:92;;21918:657:91;;3251:7;;2095:1409:92;21918:657:91;;2095:1409:92;22395:2:91;21918:657;;;3251:7;2095:1409:92;;;;:::i;:::-;;;21918:657:91;;;3251:7;21918:657;;;2095:1409:92;;;21858:727:91;;;;;;;;;;-1:-1:-1;;;;;21858:727:91;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;21858:727:91;;;;;21846:739;2095:1409:92;;-1:-1:-1;;;;;2095:1409:92;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;19723:41:91;2095:1409:92;;;;;;;;19823:38:91;2095:1409:92;;;;;;;;19933:41:91;2095:1409:92;;;;;;;;19871:52:91;2095:1409:92;;;;;;;;19774:39:91;2095:1409:92;;;;;;;;19984:32:91;2095:1409:92;;;;;;;;20026:34:91;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;:::i;:::-;28446:19:91;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;28475:48::-;;28322:3;28586:19;2095:1409:92;;;;;:::i;:::-;28463:1:91;2095:1409:92;;;;1220:14:3;;;3693:3:91;28586:19;:::i;2095:1409:92:-;;;;;;;;;;;;;;;;;;2747:18:8;2095:1409:92;;;;;;;;;2747:18:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;2095:1409:92;;;;;;;;;3040:16:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33131:24:91;;;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;33131:24:91;;;;;;;;;;;2095:1409:92;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;33169:9:91;2095:1409:92;;33231:10:91;;33209:33;33231:10;33209:33;:::i;:::-;33169:74;;;;;;2095:1409:92;;;;;;;;;;;;;;33169:74:91;;;2095:1409:92;33169:74:91;;2095:1409:92;;;;;;:::i;:::-;33169:74:91;2095:1409:92;;;33169:74:91;;;;;;;;;;;;2095:1409:92;;;;;;;;;;33261:24:91;;;;;;;;;;;;;;;;;2095:1409:92;;;;;;33261:41:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;33261:24:91;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;;;;;:::i;:::-;33261:24:91;;;;;;;;;33169:74;;;;;;;:::i;:::-;2095:1409:92;;33169:74:91;;;;;;2095:1409:92;;;;;;;;;;;;33131:24:91;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;;;;:::i;:::-;33131:24:91;;;;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25870:11:91;25898:12;25893:73;25919:3;2095:1409:92;;;;25912:5:91;;;;;2095:1409:92;;-1:-1:-1;2095:1409:92;;;25938:17:91;2095:1409:92;;;;;;;;;;;;25938:17:91;;:::i;:::-;25919:3;2095:1409:92;;;;;;;;25898:12:91;;;2095:1409:92;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;25912:5:91;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;:::i;:::-;33464:21:91;;2095:1409:92;;;:::i;:::-;-1:-1:-1;35580:14:91;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;35553:42:91;;2095:1409:92;;35553:42:91;;:::i;:::-;2095:1409:92;;;;;;;33564:9:91;2095:1409:92;;33564:40:91;;;;;;2095:1409:92;;;;;;;;;;;;33564:40:91;;;;;;;;;;2095:1409:92;33638:21:91;;35553:42;33638:21;;2095:1409:92;;;:::i;:::-;;35580:14:91;2095:1409:92;;35553:42:91;;:::i;:::-;2095:1409:92;;;;;;;;;;;;;;33744:43:91;2095:1409:92;;33820:70:91;33843:26;;;;:::i;:::-;33828:41;33820:70;:::i;2095:1409:92:-;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;33564:40:91;;;35553:42;33564:40;;;:::i;:::-;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;2272:16:8;2095:1409:92;;;;;;;;;2272:16:8;2095:1409:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2925:1;2095:1409;;;;;3693:3:91;;;3368:2;2937:31:92;;;:::i;:::-;2095:1409;3428:2:91;2978:33:92;;;:::i;:::-;2095:1409;;;;;;;:::i;:::-;3693:3:91;;;2095:1409:92;3131:46;;2095:1409;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;3368:2:91;2095:1409:92;3071:400;;2095:1409;3251:7:91;2095:1409:92;3071:400;;2095:1409;3001:2:91;2095:1409:92;3071:400;;3251:7:91;2095:1409:92;3071:400;;2095:1409;3606:3:91;2095:1409:92;3071:400;;3251:7:91;-1:-1:-1;;;;;2095:1409:92;2317:41;;;:::i;:::-;2095:1409;-1:-1:-1;;;;;2095:1409:92;;;;2300:58;2095:1409;;;2300:58;2095:1409;;;;;;;;;;;2433:56;2095:1409;;;2433:56;2095:1409;;;2499:66;2095:1409;;;2499:66;2095:1409;;;2575:60;2095:1409;;;2575:60;2095:1409;;;2645:53;2095:1409;;;2645:53;2095:1409;3001:2:91;2095:1409:92;;;3001:2:91;2095:1409:92;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;3251:7:91;2095:1409:92;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;234:9:40;;;2095:1409:92;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2095:1409:92;;;;234:9:40;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;234:9:40;2095:1409:92;-1:-1:-1;;2095:1409:92;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2095:1409:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;:::i;:::-;;;;;;;:::o;1671:64:2:-;;2095:1409:92;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;2095:1409:92;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;2095:1409:92;;;;;;;2196:43:2;;;;2095:1409:92;;;1671:64:2;;;2095:1409:92;1671:64:2;;2095:1409:92;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;2095:1409:92;;2086:175:2;;1671:64;2196:43;2086:175;;2095:1409:92;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;2095:1409:92;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;2095:1409:92;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;2095:1409:92;1671:64:2;;;2095:1409:92;;;;;;;23794:17:91;2095:1409:92;;;;;;;;;;;23794:17:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;18136:23:91;2095:1409:92;;;;;;;;;;;18136:23:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;20336:18:91;2095:1409:92;;;;;;;;;;;20336:18:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;20817:17:91;2095:1409:92;;;;;;;;;;;20817:17:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;21059:19:91;2095:1409:92;;;;;;;;;;;21059:19:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;21553:17:91;2095:1409:92;;;;;;;;;;;21553:17:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;21793:17:91;2095:1409:92;;;;;;;;;;;21793:17:91;-1:-1:-1;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;-1:-1:-1;2095:1409:92;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;2095:1409:92;;-1:-1:-1;2095:1409:92;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;16974:1:91;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;2983:1;2095:1409;;;;;;;:::o;:::-;;;26286:1:91;2095:1409:92;;;;;;;:::o;:::-;;;25352:1:91;2095:1409:92;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;18206:1:91;2095:1409:92;;;;;;;:::o;:::-;;;18444:1:91;2095:1409:92;;;;;;;:::o;:::-;;;12845:1:91;2095:1409:92;;;;;;;:::o;:::-;;;13113:1:91;2095:1409:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;11484:3185:91;;2095:1409:92;;11644:24:91;;;;;;;-1:-1:-1;;;;;11644:24:91;;;;;;;;;;;;;;;;;;2095:1409:92;;11718:24:91;;;;;;;-1:-1:-1;;;;;11718:24:91;;;;;;;;;;;;11644;11718;;;;;2095:1409:92;;11796:26:91;;;;;;;-1:-1:-1;;;;;11796:26:91;;;;;;;;;;;;11644:24;11796:26;;;;;;2095:1409:92;;11874:25:91;;;;;;;-1:-1:-1;;;;;11874:25:91;;;;;;;;;;;;11644:24;11874:25;;;;;2095:1409:92;;11940:25:91;;;;;;;-1:-1:-1;;;;;11940:25:91;;;;;;;;;;;;11644:24;11940:25;;;;;2095:1409:92;;12003:24:91;;;;;;;-1:-1:-1;;;;;12003:24:91;;;;;;;;;;;;11644;12003;;;;;;2095:1409:92;;12071:27:91;;;;;;;-1:-1:-1;;;;;12071:27:91;;;;;;;;;;;;11644:24;12071:27;;;;;;2095:1409:92;;12133:21:91;;;;;;;-1:-1:-1;;;;;12133:21:91;;;;;;;;;;;;11644:24;12133:21;;;;;;2095:1409:92;;12191:23:91;;;;;;;-1:-1:-1;;;;;12191:23:91;;;;;;;;;;;;11644:24;12191:23;;;;;;2095:1409:92;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;12291:1:91;2095:1409:92;;11644:24:91;2095:1409:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;12336:211:91;;2095:1409:92;;;;;;12503:29:91;2095:1409:92;;;;;;12503:29:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12336:211:91;;2095:1409:92;12304:253:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;12600:211:91;;2095:1409:92;;;;;;12767:29:91;2095:1409:92;;;;;;12767:29:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12600:211:91;;2095:1409:92;12568:253:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;12864:215:91;;2095:1409:92;;;;;;13033:31:91;2095:1409:92;;;;;;13033:31:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12864:215:91;;2095:1409:92;12832:257:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;13132:213:91;;2095:1409:92;;;;;;13300:30:91;2095:1409:92;;;;;;13300:30:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13132:213:91;;2095:1409:92;13100:255:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;13398:189:91;;2095:1409:92;;;;;;13554:18:91;2095:1409:92;;;;;;13554:18:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13398:189:91;;2095:1409:92;13366:231:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;13640:187:91;;2095:1409:92;;;;;;13795:17:91;2095:1409:92;;;;;;13795:17:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13640:187:91;;2095:1409:92;13608:229:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;13880:193:91;;2095:1409:92;;;;;;14038:20:91;2095:1409:92;;;;;;14038:20:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13880:193:91;;2095:1409:92;13848:235:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;14126:186:91;;2095:1409:92;;;;;;14281:16:91;2095:1409:92;;;;;;14281:16:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14126:186:91;;2095:1409:92;14094:228:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;2095:1409:92;14365:187:91;;2095:1409:92;;;;;;14520:17:91;2095:1409:92;;;;;;14520:17:91;11644:24;2095:1409:92;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14365:187:91;;2095:1409:92;14333:229:91;;;:::i;:::-;;;;;:::i;:::-;;2095:1409:92;;14590:40:91;;;;;;;;;-1:-1:-1;;;;;14590:40:91;;;;;2095:1409:92;14590:40:91;;;;2095:1409:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11644:24:91;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;14590:40:91;;11644:24;14590:40;;;;;14573:57;2095:1409:92;;-1:-1:-1;;;;;;2095:1409:92;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;11484:3185:91:o;2095:1409:92:-;234:9:40;;;;;;2095:1409:92;234:9:40;2095:1409:92;;234:9:40;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3251:7:91:-;2095:1409:92;;;;;;3251:7:91;:::o;4539:185:76:-;-1:-1:-1;2095:1409:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;2095:1409:92;;-1:-1:-1;2095:1409:92;4618:99:76;;2095:1409:92;4539:185:76;:::o;2095:1409:92:-;;;;;;;:::i;:::-;1671:64:2;2095:1409:92;;-1:-1:-1;2095:1409:92;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;28463:1:91;2095:1409:92;;;-1:-1:-1;2095:1409:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;234:9:40;-1:-1:-1;;540:42:1;;;;;2095:1409:92;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;2095:1409:92;;:::i;:::-;;695:118:61;2095:1409:92;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;2095:1409:92;;;;;;:::i;:::-;3110:2:91;3693:3;;480:2:61;779:22;719:84;;480:2;;;719:84;;;2095:1409:92;;;;;695:118:61;;;779:22;695:118;;;480:2;;2095:1409:92;480:2:61;;;2095:1409:92;480:2:61;;2095:1409:92;480:2:61;;;;2095:1409:92;480:2:61;;;;;;;;;:::i;:::-;695:118;234:9:40;;695:118:61;;;;;;:::i;:::-;2095:1409:92;;;;;:::i;:::-;438:1:61;3251:7:91;;779:22:61;837:51;;2095:1409:92;581:314:61;:::o;2095:1409:92:-;;;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;2095:1409:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2095:1409:92;;;;;;:::o;234:9:40:-;2095:1409:92;;;;;;:::i;:::-;234:9:40;2095:1409:92;;:::i;:::-;234:9:40;;;2095:1409:92;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;2095:1409:92;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;2095:1409:92;-1:-1:-1;;;;;234:9:40;;;;2095:1409:92;234:9:40;;;2095:1409:92;;;;234:9:40;;;;2095:1409:92;234:9:40;;;2095:1409:92;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;2095:1409:92;234:9:40;;2095:1409:92;;234:9:40;;2095:1409:92;234:9:40;:::o;2095:1409:92:-;;;;:::o;:::-;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;;33903:813:91;-1:-1:-1;;;;;2095:1409:92;;;;;;34081:38:91;;;;;2095:1409:92;;;;;;;;;;;34081:38:91;;34117:1;2095:1409:92;34117:1:91;34081:38;;;;;;;;;;2095:1409:92;34081:38:91;;;;;;;;;;;;;;33903:813;34212:64;;;;;;:::i;:::-;2095:1409:92;;;;;;;;;;;;;;;;;;;;;34319:25:91;;;;;;;;;;;;;33903:813;34376:9;;2095:1409:92;;;;;;34376:11:91;;;;2095:1409:92;;;;;34376:11:91;;;;;;2095:1409:92;;;;;;:::i;:::-;34376:11:91;;;;;;;;;;;;;;;;;33903:813;-1:-1:-1;2095:1409:92;;-1:-1:-1;;;34391:43:91;;2095:1409:92;;;;;;34391:43:91;;2095:1409:92;34391:43:91;;;;:::i;:::-;;;;;;;;;;;;2095:1409:92;34391:43:91;;;;;;;;33903:813;2095:1409:92;;;34391:52:91;;;;;;;;;;;;2095:1409:92;;;;;;:::i;:::-;34391:52:91;;;;;;;;;;;;33903:813;34376:67;;2095:1409:92;;34554:19:91;;;;34546:48;34604:46;34554:19;34660:49;34554:19;;;34546:48;:::i;2095:1409:92:-;;-1:-1:-1;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2095:1409:92;;;;;;-1:-1:-1;2095:1409:92;34391:52:91;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;34391:52:91;;;;;;;;;;2095:1409:92;;;;;;;;;;34391:43:91;;;;;;;;;;;;;;:::i;:::-;;;;;;2095:1409:92;;;;;;;;;34376:11:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;;;34391:43:91;34376:11;;;;;;;;2095:1409:92;;;;;;;;;34319:25:91;;;;;;;;;;;;;;:::i;:::-;;;;;;2095:1409:92;;;;;;;;;34081:38:91;;;34212:64;34081:38;;:::i;:::-;;;;;2095:1409:92;;;;;;;;;34878:541:91;;2095:1409:92;;:::i;:::-;-1:-1:-1;35042:44:91;2095:1409:92;;-1:-1:-1;;;;;2095:1409:92;;;-1:-1:-1;;;;;;2095:1409:92;;;;;;;;35096:42:91;2095:1409:92;;;;;;;;;;;-1:-1:-1;;;35176:25:91;;35096:42;;-1:-1:-1;;;;2095:1409:92;;35176:25:91;;2095:1409:92;;35176:25:91;;;;;;;;;;;:55;:25;;;;;34878:541;-1:-1:-1;2095:1409:92;;-1:-1:-1;;;35176:55:91;;2095:1409:92;35176:40:91;;2095:1409:92;;;;;35176:25:91;:55;;;:::i;:::-;;;;;;;;;;;;;;;34878:541;2095:1409:92;;;;;;;;;;;;;;;35282:17:91;;;;;;;;;35176:25;35282:17;;2095:1409:92;;;;;;:::i;:::-;35282:17:91;;;;;;;;;;;;;;;;34878:541;2095:1409:92;;;;;;;;;;;35265:35:91;;35176:25;35265:35;;2095:1409:92;35265:35:91;;;;;;;;;;;34878:541;35319:9;;;2095:1409:92;35319:9:91;;;2095:1409:92;;;-1:-1:-1;;;;;35344:19:91;;;;;2095:1409:92;;35365:27:91;;;;2095:1409:92;;35394:17:91;;2095:1409:92;35311:101:91;;;;;34878:541;:::o;35265:35::-;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;;;;;;;-1:-1:-1;;;;;2095:1409:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;2095:1409:92;;;;;540:42:1;2095:1409:92;;;;;;;540:42:1;2095:1409:92;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;2095:1409:92;;;;;:::i;:::-;;;;;35265:35:91;;;;;;2095:1409:92;;;;;;;;;;;35282:17:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;2095:1409:92;;;;540:42:1;;;35282:17:91;;;;;;;;;2095:1409:92;;;;;;;;;35176:55:91;2095:1409:92;35176:55:91;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;2095:1409:92;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":93542,"length":20},{"start":99461,"length":20},{"start":103975,"length":20},{"start":111326,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":65862,"length":20},{"start":68043,"length":20},{"start":68617,"length":20},{"start":92419,"length":20},{"start":114330,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":57072,"length":20},{"start":57843,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":149735,"length":20},{"start":162372,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":78080,"length":20},{"start":92057,"length":20},{"start":113832,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":13541,"length":20},{"start":13621,"length":20},{"start":13705,"length":20},{"start":13886,"length":20},{"start":14051,"length":20},{"start":32174,"length":20},{"start":32892,"length":20},{"start":41874,"length":20},{"start":56741,"length":20},{"start":64091,"length":20},{"start":64679,"length":20},{"start":65552,"length":20},{"start":67610,"length":20},{"start":67897,"length":20},{"start":68447,"length":20},{"start":71497,"length":20},{"start":73896,"length":20},{"start":73993,"length":20},{"start":75088,"length":20},{"start":77749,"length":20},{"start":77851,"length":20},{"start":78181,"length":20},{"start":78266,"length":20},{"start":78367,"length":20},{"start":78452,"length":20},{"start":79939,"length":20},{"start":80017,"length":20},{"start":80122,"length":20},{"start":80278,"length":20},{"start":80828,"length":20},{"start":81069,"length":20},{"start":81150,"length":20},{"start":86623,"length":20},{"start":91126,"length":20},{"start":91802,"length":20},{"start":97397,"length":20},{"start":97616,"length":20},{"start":97696,"length":20},{"start":97877,"length":20},{"start":98058,"length":20},{"start":111508,"length":20},{"start":113568,"length":20},{"start":133511,"length":20},{"start":155265,"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\":[{\"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/IntegrationTestPresets.sol\":\"L2GatewayActorDiamond\"},\"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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"test/IntegrationTestPresets.sol\":{\"keccak256\":\"0x0a02df29b6b1e34e1b95e61e76b485ff7a9220fadb2af1c084b9b14dba835f2f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f3ba412cd91ccbc76e45d94add104e5434670ea2ed3f4850612d4fc51284ef4b\",\"dweb:/ipfs/QmaRYUH4DdMAGRxeFBqHPKXdXGchYE86aCxFTZnjMZkB65\"]},\"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":[{"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/IntegrationTestPresets.sol":"L2GatewayActorDiamond"},"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestPresets.sol":{"keccak256":"0x0a02df29b6b1e34e1b95e61e76b485ff7a9220fadb2af1c084b9b14dba835f2f","urls":["bzz-raw://f3ba412cd91ccbc76e45d94add104e5434670ea2ed3f4850612d4fc51284ef4b","dweb:/ipfs/QmaRYUH4DdMAGRxeFBqHPKXdXGchYE86aCxFTZnjMZkB65"],"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/IntegrationTestPresets.sol","id":56101,"exportedSymbols":{"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IPCAddress":[50157],"IntegrationTestBase":[55675],"L1GatewayActorDiamond":[55824],"L2GatewayActorDiamond":[55956],"L3GatewayActorDiamond":[56100],"Subnet":[50044],"SubnetID":[50030],"Validator":[50164],"XnetMessagingFacet":[40144]},"nodeType":"SourceUnit","src":"46:4974:92","nodes":[{"id":55677,"nodeType":"PragmaDirective","src":"46:23:92","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55682,"nodeType":"ImportDirective","src":"71:82:92","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":55678,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55679,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"89:6:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55680,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"97:10:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55681,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"109:9:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55684,"nodeType":"ImportDirective","src":"154:67:92","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":55683,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"162:15:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55686,"nodeType":"ImportDirective","src":"222:71:92","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":55685,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"230:17:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55688,"nodeType":"ImportDirective","src":"294:57:92","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":55687,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"302:14:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55690,"nodeType":"ImportDirective","src":"352:73:92","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":55689,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"360:18:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55692,"nodeType":"ImportDirective","src":"426:75:92","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":55691,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"434:19:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55694,"nodeType":"ImportDirective","src":"502:79:92","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":55693,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"510:21:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55696,"nodeType":"ImportDirective","src":"582:80:92","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":55695,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"590:18:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55698,"nodeType":"ImportDirective","src":"663:62:92","nodes":[],"absolutePath":"test/IntegrationTestBase.sol","file":"./IntegrationTestBase.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":55676,"symbolAliases":[{"foreign":{"id":55697,"name":"IntegrationTestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"671:19:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55824,"nodeType":"ContractDefinition","src":"727:1366:92","nodes":[{"id":55773,"nodeType":"FunctionDefinition","src":"787:611:92","nodes":[],"body":{"id":55772,"nodeType":"Block","src":"828:570:92","nodes":[],"statements":[{"assignments":[55708],"declarations":[{"constant":false,"id":55708,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"878:19:92","nodeType":"VariableDeclaration","scope":55772,"src":"838:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55707,"nodeType":"UserDefinedTypeName","pathNode":{"id":55706,"name":"GatewayDiamond.ConstructorParams","nameLocations":["838:14:92","853:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"838:32:92"},"referencedDeclaration":35883,"src":"838:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55709,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[55823],"referencedDeclaration":55823,"src":"900:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"838:84:92"},{"expression":{"id":55716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55712,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"932:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55714,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55708,"src":"970:19:92","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":55713,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"949:20:92","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":55715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"949:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"932:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55717,"nodeType":"ExpressionStatement","src":"932:58:92"},{"expression":{"id":55725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55718,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"1001:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55722,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1039:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1031:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55720,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:92","typeDescriptions":{}}},"id":55723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1031:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55719,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1012:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"1001:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55726,"nodeType":"ExpressionStatement","src":"1001:54:92"},{"expression":{"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55727,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"1065:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55731,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1105:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1097:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55729,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:92","typeDescriptions":{}}},"id":55732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1097:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55728,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1077:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"1065:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55735,"nodeType":"ExpressionStatement","src":"1065:56:92"},{"expression":{"id":55743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55736,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"1131:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55740,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1181:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1173:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55738,"name":"address","nodeType":"ElementaryTypeName","src":"1173:7:92","typeDescriptions":{}}},"id":55741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55737,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1154:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":55742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"1131:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":55744,"nodeType":"ExpressionStatement","src":"1131:66:92"},{"expression":{"id":55752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55745,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"1207:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55749,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1251:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1243:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55747,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:92","typeDescriptions":{}}},"id":55750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55746,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1221:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":55751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1221:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"1207:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":55753,"nodeType":"ExpressionStatement","src":"1207:60:92"},{"expression":{"id":55761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55754,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"1277:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55758,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1314:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1306:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55756,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:92","typeDescriptions":{}}},"id":55759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1306:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55755,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"1288:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":55760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"1277:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":55762,"nodeType":"ExpressionStatement","src":"1277:53:92"},{"expression":{"id":55770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55763,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"1340:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55767,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1375:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1367:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55765,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:92","typeDescriptions":{}}},"id":55768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55764,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"1351:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":55769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"1340:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":55771,"nodeType":"ExpressionStatement","src":"1340:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"796:5:92","overrides":{"id":55702,"nodeType":"OverrideSpecifier","overrides":[],"src":"819:8:92"},"parameters":{"id":55701,"nodeType":"ParameterList","parameters":[],"src":"801:2:92"},"returnParameters":{"id":55703,"nodeType":"ParameterList","parameters":[],"src":"828:0:92"},"scope":55824,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55823,"nodeType":"FunctionDefinition","src":"1404:687:92","nodes":[],"body":{"id":55822,"nodeType":"Block","src":"1509:582:92","nodes":[],"statements":[{"assignments":[55784],"declarations":[{"constant":false,"id":55784,"mutability":"mutable","name":"path","nameLocation":"1536:4:92","nodeType":"VariableDeclaration","scope":55822,"src":"1519:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55782,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55783,"nodeType":"ArrayTypeName","src":"1519:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55790,"initialValue":{"arguments":[{"hexValue":"31","id":55788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1557:1:92","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":55787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1543:13:92","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":55785,"name":"address","nodeType":"ElementaryTypeName","src":"1547:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55786,"nodeType":"ArrayTypeName","src":"1547:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1519:40:92"},{"expression":{"id":55795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55791,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55784,"src":"1569:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55793,"indexExpression":{"hexValue":"30","id":55792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1574:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1569:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55794,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"1579:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1569:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55796,"nodeType":"ExpressionStatement","src":"1569:31:92"},{"assignments":[55801],"declarations":[{"constant":false,"id":55801,"mutability":"mutable","name":"params","nameLocation":"1651:6:92","nodeType":"VariableDeclaration","scope":55822,"src":"1611:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55800,"nodeType":"UserDefinedTypeName","pathNode":{"id":55799,"name":"GatewayDiamond.ConstructorParams","nameLocations":["1611:14:92","1626:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1611:32:92"},"referencedDeclaration":35883,"src":"1611:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55819,"initialValue":{"arguments":[{"arguments":[{"id":55805,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"1736:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55806,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55784,"src":"1760:4:92","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":55804,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"1720:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1730:4:92","1753:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"1720:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55808,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"1801:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55809,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"1848:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55810,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"1903:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":55815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:92","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":55814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1963:15:92","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":55812,"nodeType":"UserDefinedTypeName","pathNode":{"id":55811,"name":"Validator","nameLocations":["1967:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"1967:9:92"},"referencedDeclaration":50164,"src":"1967:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":55813,"nodeType":"ArrayTypeName","src":"1967:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1963:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":55817,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"2018:31:92","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":55802,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"1660:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":55803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1675:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"1660:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":55818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1707:11:92","1780:19:92","1840:6:92","1883:18:92","1944:17:92","1995:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"1660:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1611:449:92"},{"expression":{"id":55820,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55801,"src":"2078:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":55779,"id":55821,"nodeType":"Return","src":"2071:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"1413:20:92","overrides":{"id":55775,"nodeType":"OverrideSpecifier","overrides":[],"src":"1450:8:92"},"parameters":{"id":55774,"nodeType":"ParameterList","parameters":[],"src":"1433:2:92"},"returnParameters":{"id":55779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55823,"src":"1468:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55777,"nodeType":"UserDefinedTypeName","pathNode":{"id":55776,"name":"GatewayDiamond.ConstructorParams","nameLocations":["1468:14:92","1483:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1468:32:92"},"referencedDeclaration":35883,"src":"1468:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1467:41:92"},"scope":55824,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55699,"name":"IntegrationTestBase","nameLocations":["761:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"761:19:92"},"id":55700,"nodeType":"InheritanceSpecifier","src":"761:19:92"}],"canonicalName":"L1GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55824,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L1GatewayActorDiamond","nameLocation":"736:21:92","scope":56101,"usedErrors":[]},{"id":55956,"nodeType":"ContractDefinition","src":"2095:1409:92","nodes":[{"id":55899,"nodeType":"FunctionDefinition","src":"2155:611:92","nodes":[],"body":{"id":55898,"nodeType":"Block","src":"2196:570:92","nodes":[],"statements":[{"assignments":[55834],"declarations":[{"constant":false,"id":55834,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"2246:19:92","nodeType":"VariableDeclaration","scope":55898,"src":"2206:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55833,"nodeType":"UserDefinedTypeName","pathNode":{"id":55832,"name":"GatewayDiamond.ConstructorParams","nameLocations":["2206:14:92","2221:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"2206:32:92"},"referencedDeclaration":35883,"src":"2206:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55835,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[55955],"referencedDeclaration":55955,"src":"2268:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2206:84:92"},{"expression":{"id":55842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55838,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2300:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55840,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"2338:19:92","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":55839,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"2317:20:92","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":55841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"2300:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55843,"nodeType":"ExpressionStatement","src":"2300:58:92"},{"expression":{"id":55851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55844,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"2369:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55848,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2407:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2399:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55846,"name":"address","nodeType":"ElementaryTypeName","src":"2399:7:92","typeDescriptions":{}}},"id":55849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2399:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55845,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"2380:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"2369:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55852,"nodeType":"ExpressionStatement","src":"2369:54:92"},{"expression":{"id":55860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55853,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"2433:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55857,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2473:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2465:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55855,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:92","typeDescriptions":{}}},"id":55858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55854,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"2445:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2445:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"2433:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55861,"nodeType":"ExpressionStatement","src":"2433:56:92"},{"expression":{"id":55869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55862,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"2499:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55866,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2549:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2541:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55864,"name":"address","nodeType":"ElementaryTypeName","src":"2541:7:92","typeDescriptions":{}}},"id":55867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2541:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55863,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"2522:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":55868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2522:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"2499:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":55870,"nodeType":"ExpressionStatement","src":"2499:66:92"},{"expression":{"id":55878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55871,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"2575:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55875,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2619:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2611:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55873,"name":"address","nodeType":"ElementaryTypeName","src":"2611:7:92","typeDescriptions":{}}},"id":55876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2611:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55872,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"2589:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":55877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2589:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"2575:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":55879,"nodeType":"ExpressionStatement","src":"2575:60:92"},{"expression":{"id":55887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55880,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"2645:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55884,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2682:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2674:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55882,"name":"address","nodeType":"ElementaryTypeName","src":"2674:7:92","typeDescriptions":{}}},"id":55885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2674:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55881,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2656:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":55886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"2645:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":55888,"nodeType":"ExpressionStatement","src":"2645:53:92"},{"expression":{"id":55896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55889,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"2708:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55893,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2743:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2735:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55891,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:92","typeDescriptions":{}}},"id":55894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55890,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2719:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":55895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"2708:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":55897,"nodeType":"ExpressionStatement","src":"2708:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"2164:5:92","overrides":{"id":55828,"nodeType":"OverrideSpecifier","overrides":[],"src":"2187:8:92"},"parameters":{"id":55827,"nodeType":"ParameterList","parameters":[],"src":"2169:2:92"},"returnParameters":{"id":55829,"nodeType":"ParameterList","parameters":[],"src":"2196:0:92"},"scope":55956,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55955,"nodeType":"FunctionDefinition","src":"2772:730:92","nodes":[],"body":{"id":55954,"nodeType":"Block","src":"2877:625:92","nodes":[],"statements":[{"assignments":[55910],"declarations":[{"constant":false,"id":55910,"mutability":"mutable","name":"path","nameLocation":"2904:4:92","nodeType":"VariableDeclaration","scope":55954,"src":"2887:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55908,"name":"address","nodeType":"ElementaryTypeName","src":"2887:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55909,"nodeType":"ArrayTypeName","src":"2887:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55916,"initialValue":{"arguments":[{"hexValue":"32","id":55914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2925:1:92","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":55913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2911:13:92","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":55911,"name":"address","nodeType":"ElementaryTypeName","src":"2915:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55912,"nodeType":"ArrayTypeName","src":"2915:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2887:40:92"},{"expression":{"id":55921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55917,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"2937:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55919,"indexExpression":{"hexValue":"30","id":55918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2942:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2937:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55920,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"2947:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2937:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55922,"nodeType":"ExpressionStatement","src":"2937:31:92"},{"expression":{"id":55927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55923,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"2978:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55925,"indexExpression":{"hexValue":"31","id":55924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2978:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55926,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"2988:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2978:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55928,"nodeType":"ExpressionStatement","src":"2978:33:92"},{"assignments":[55933],"declarations":[{"constant":false,"id":55933,"mutability":"mutable","name":"params","nameLocation":"3062:6:92","nodeType":"VariableDeclaration","scope":55954,"src":"3022:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55932,"nodeType":"UserDefinedTypeName","pathNode":{"id":55931,"name":"GatewayDiamond.ConstructorParams","nameLocations":["3022:14:92","3037:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"3022:32:92"},"referencedDeclaration":35883,"src":"3022:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55951,"initialValue":{"arguments":[{"arguments":[{"id":55937,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"3147:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55938,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"3171:4:92","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":55936,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"3131:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3141:4:92","3164:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"3131:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55940,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3212:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55941,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"3259:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55942,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"3314:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":55947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3390:1:92","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":55946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3374:15:92","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":55944,"nodeType":"UserDefinedTypeName","pathNode":{"id":55943,"name":"Validator","nameLocations":["3378:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"3378:9:92"},"referencedDeclaration":50164,"src":"3378:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":55945,"nodeType":"ArrayTypeName","src":"3378:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":55948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":55949,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"3429:31:92","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":55934,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"3071:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":55935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3086:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"3071:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":55950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3118:11:92","3191:19:92","3251:6:92","3294:18:92","3355:17:92","3406:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"3071:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3022:449:92"},{"expression":{"id":55952,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55933,"src":"3489:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":55905,"id":55953,"nodeType":"Return","src":"3482:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"2781:20:92","overrides":{"id":55901,"nodeType":"OverrideSpecifier","overrides":[],"src":"2818:8:92"},"parameters":{"id":55900,"nodeType":"ParameterList","parameters":[],"src":"2801:2:92"},"returnParameters":{"id":55905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55955,"src":"2836:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55903,"nodeType":"UserDefinedTypeName","pathNode":{"id":55902,"name":"GatewayDiamond.ConstructorParams","nameLocations":["2836:14:92","2851:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"2836:32:92"},"referencedDeclaration":35883,"src":"2836:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"2835:41:92"},"scope":55956,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55825,"name":"IntegrationTestBase","nameLocations":["2129:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"2129:19:92"},"id":55826,"nodeType":"InheritanceSpecifier","src":"2129:19:92"}],"canonicalName":"L2GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55956,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L2GatewayActorDiamond","nameLocation":"2104:21:92","scope":56101,"usedErrors":[]},{"id":56100,"nodeType":"ContractDefinition","src":"3506:1513:92","nodes":[{"id":55964,"nodeType":"VariableDeclaration","src":"3566:54:92","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_3","nameLocation":"3583:23:92","scope":56100,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55959,"name":"address","nodeType":"ElementaryTypeName","src":"3566:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3331","id":55962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3617:2:92","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":55961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3609:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55960,"name":"address","nodeType":"ElementaryTypeName","src":"3609:7:92","typeDescriptions":{}}},"id":55963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3609:11:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":56037,"nodeType":"FunctionDefinition","src":"3627:611:92","nodes":[],"body":{"id":56036,"nodeType":"Block","src":"3668:570:92","nodes":[],"statements":[{"assignments":[55972],"declarations":[{"constant":false,"id":55972,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"3718:19:92","nodeType":"VariableDeclaration","scope":56036,"src":"3678:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55971,"nodeType":"UserDefinedTypeName","pathNode":{"id":55970,"name":"GatewayDiamond.ConstructorParams","nameLocations":["3678:14:92","3693:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"3678:32:92"},"referencedDeclaration":35883,"src":"3678:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55975,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55973,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[56099],"referencedDeclaration":56099,"src":"3740:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3740:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3678:84:92"},{"expression":{"id":55980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55976,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3772:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55978,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55972,"src":"3810:19:92","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":55977,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"3789:20:92","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":55979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"3772:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55981,"nodeType":"ExpressionStatement","src":"3772:58:92"},{"expression":{"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55982,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"3841:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55986,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3879:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55984,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:92","typeDescriptions":{}}},"id":55987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55983,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"3852:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"3841:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55990,"nodeType":"ExpressionStatement","src":"3841:54:92"},{"expression":{"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55991,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"3905:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55995,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3945:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3937:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55993,"name":"address","nodeType":"ElementaryTypeName","src":"3937:7:92","typeDescriptions":{}}},"id":55996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3937:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55992,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"3917:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3917:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"3905:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55999,"nodeType":"ExpressionStatement","src":"3905:56:92"},{"expression":{"id":56007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56000,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"3971:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56004,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4021:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4013:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56002,"name":"address","nodeType":"ElementaryTypeName","src":"4013:7:92","typeDescriptions":{}}},"id":56005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4013:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56001,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"3994:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":56006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"3971:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":56008,"nodeType":"ExpressionStatement","src":"3971:66:92"},{"expression":{"id":56016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56009,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"4047:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56013,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4091:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4083:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56011,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:92","typeDescriptions":{}}},"id":56014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4083:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56010,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"4061:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":56015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"4047:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":56017,"nodeType":"ExpressionStatement","src":"4047:60:92"},{"expression":{"id":56025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56018,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"4117:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56022,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4154:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4146:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56020,"name":"address","nodeType":"ElementaryTypeName","src":"4146:7:92","typeDescriptions":{}}},"id":56023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56019,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"4128:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":56024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4128:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"4117:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":56026,"nodeType":"ExpressionStatement","src":"4117:53:92"},{"expression":{"id":56034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56027,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"4180:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56031,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4215:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4207:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56029,"name":"address","nodeType":"ElementaryTypeName","src":"4207:7:92","typeDescriptions":{}}},"id":56032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4207:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56028,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"4191:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":56033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"4180:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":56035,"nodeType":"ExpressionStatement","src":"4180:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"3636:5:92","overrides":{"id":55966,"nodeType":"OverrideSpecifier","overrides":[],"src":"3659:8:92"},"parameters":{"id":55965,"nodeType":"ParameterList","parameters":[],"src":"3641:2:92"},"returnParameters":{"id":55967,"nodeType":"ParameterList","parameters":[],"src":"3668:0:92"},"scope":56100,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56099,"nodeType":"FunctionDefinition","src":"4244:773:92","nodes":[],"body":{"id":56098,"nodeType":"Block","src":"4349:668:92","nodes":[],"statements":[{"assignments":[56048],"declarations":[{"constant":false,"id":56048,"mutability":"mutable","name":"path","nameLocation":"4376:4:92","nodeType":"VariableDeclaration","scope":56098,"src":"4359:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56046,"name":"address","nodeType":"ElementaryTypeName","src":"4359:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56047,"nodeType":"ArrayTypeName","src":"4359:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":56054,"initialValue":{"arguments":[{"hexValue":"33","id":56052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4397:1:92","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":56051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4383:13:92","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":56049,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56050,"nodeType":"ArrayTypeName","src":"4387:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4359:40:92"},{"expression":{"id":56059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56055,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4409:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56057,"indexExpression":{"hexValue":"30","id":56056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4414:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4409:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56058,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"4419:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4409:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56060,"nodeType":"ExpressionStatement","src":"4409:31:92"},{"expression":{"id":56065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56061,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4450:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56063,"indexExpression":{"hexValue":"31","id":56062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4455:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4450:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56064,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"4460:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4450:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56066,"nodeType":"ExpressionStatement","src":"4450:33:92"},{"expression":{"id":56071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56067,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4493:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56069,"indexExpression":{"hexValue":"31","id":56068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4498:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4493:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56070,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"4503:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4493:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56072,"nodeType":"ExpressionStatement","src":"4493:33:92"},{"assignments":[56077],"declarations":[{"constant":false,"id":56077,"mutability":"mutable","name":"params","nameLocation":"4577:6:92","nodeType":"VariableDeclaration","scope":56098,"src":"4537:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":56076,"nodeType":"UserDefinedTypeName","pathNode":{"id":56075,"name":"GatewayDiamond.ConstructorParams","nameLocations":["4537:14:92","4552:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"4537:32:92"},"referencedDeclaration":35883,"src":"4537:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":56095,"initialValue":{"arguments":[{"arguments":[{"id":56081,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"4662:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":56082,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4686:4:92","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":56080,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"4646:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":56083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4656:4:92","4679:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"4646:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":56084,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"4727:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":56085,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"4774:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56086,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"4829:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":56091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4905:1:92","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":56090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4889:15:92","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":56088,"nodeType":"UserDefinedTypeName","pathNode":{"id":56087,"name":"Validator","nameLocations":["4893:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"4893:9:92"},"referencedDeclaration":50164,"src":"4893:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":56089,"nodeType":"ArrayTypeName","src":"4893:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":56092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4889:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":56093,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"4944:31:92","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":56078,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"4586:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":56079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4601:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"4586:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4633:11:92","4706:19:92","4766:6:92","4809:18:92","4870:17:92","4921:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"4586:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4537:449:92"},{"expression":{"id":56096,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56077,"src":"5004:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":56043,"id":56097,"nodeType":"Return","src":"4997:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"4253:20:92","overrides":{"id":56039,"nodeType":"OverrideSpecifier","overrides":[],"src":"4290:8:92"},"parameters":{"id":56038,"nodeType":"ParameterList","parameters":[],"src":"4273:2:92"},"returnParameters":{"id":56043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56099,"src":"4308:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":56041,"nodeType":"UserDefinedTypeName","pathNode":{"id":56040,"name":"GatewayDiamond.ConstructorParams","nameLocations":["4308:14:92","4323:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"4308:32:92"},"referencedDeclaration":35883,"src":"4308:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"4307:41:92"},"scope":56100,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55957,"name":"IntegrationTestBase","nameLocations":["3540:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"3540:19:92"},"id":55958,"nodeType":"InheritanceSpecifier","src":"3540:19:92"}],"canonicalName":"L3GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56100,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L3GatewayActorDiamond","nameLocation":"3515:21:92","scope":56101,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":92} \ No newline at end of file diff --git a/contracts/.out/IntegrationTestPresets.sol/L3GatewayActorDiamond.json b/contracts/.out/IntegrationTestPresets.sol/L3GatewayActorDiamond.json new file mode 100644 index 000000000..801b2f642 --- /dev/null +++ b/contracts/.out/IntegrationTestPresets.sol/L3GatewayActorDiamond.json @@ -0,0 +1 @@ +{"abi":[{"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":"0x6080806040523462002c5b57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162002c3c575b508051906001600160401b03821162001203576801000000000000000082116200120357601b5482601b5580831062002bd9575b5060200190601b60005260206000209060005b8160031c811062002b895750600719811681038062002b31575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162002b12575b508051906001600160401b03821162001203576801000000000000000082116200120357601c5482601c5580831062002aa6575b5060200190601c60005260206000209060005b8160031c811062002a56575060071981168103620029fd575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200124157600091620029de575b508051906001600160401b03821162001203576801000000000000000082116200120357601d5482601d5580831062002955575b5060200190601d60005260206000209060005b8160031c811062002905575060071981168103620028ac575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562001241576000916200288d575b508051906001600160401b03821162001203576801000000000000000082116200120357601e5482601e5580831062002804575b5060200190601e60005260206000209060005b8160031c8110620027b45750600719811681036200275b575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f724765747465724661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562001241576000916200273c575b508051906001600160401b0382116200120357680100000000000000008211620012035760245482602455808310620026b3575b5060200190602460005260206000209060005b8160031c8110620026635750600719811681036200260a575b50506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e6167657246616365740000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200124157600091620025eb575b508051906001600160401b038211620012035768010000000000000000821162001203576025548260255580831062002562575b5060200190602560005260206000209060005b8160031c811062002512575060071981168103620024b9575b50506040516319b8a26360e21b815260206004820152601560248201527f5375626e65744163746f725061757365466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562001241576000916200249a575b508051906001600160401b038211620012035768010000000000000000821162001203576026548260265580831062002411575b5060200190602660005260206000209060005b8160031c8110620023c157506007198116810362002368575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f725265776172644661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162002349575b508051906001600160401b0382116200120357680100000000000000008211620012035760275482602755808310620022c0575b5060200190602760005260206000209060005b8160031c81106200227057506007198116810362002217575b50506040516319b8a26360e21b815260206004820152601d60248201527f5375626e65744163746f72436865636b706f696e74696e6746616365740000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200124157600091620021f8575b508051906001600160401b03821162001203576801000000000000000082116200120357602854826028558083106200216f575b5060200190602860005260206000209060005b8160031c81106200211f575060071981168103620020c6575b50506040516319b8a26360e21b815260206004820152600f60248201526e5375626e65744163746f724d6f636b60881b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200124157600091620020a7575b508051906001600160401b03821162001203576801000000000000000082116200120357602954826029558083106200201e575b5060200190602960005260206000209060005b8160031c811062001fce57506007198116810362001f75575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001f56575b508051906001600160401b03821162001203576801000000000000000082116200120357602a5482602a5580831062001ecd575b5060200190602a60005260206000209060005b8160031c811062001e7d57506007198116810362001e24575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001e05575b508051906001600160401b03821162001203576801000000000000000082116200120357602b5482602b5580831062001d7c575b5060200190602b60005260206000209060005b8160031c811062001d2c57506007198116810362001cd3575b50506040516319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001cb4575b508051906001600160401b038211620012035768010000000000000000821162001203576035548260355580831062001c2b575b5060200190603560005260206000209060005b8160031c811062001bdb57506007198116810362001b82575b50506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001b63575b508051906001600160401b038211620012035768010000000000000000821162001203576036548260365580831062001ada575b5060200190603660005260206000209060005b8160031c811062001a8a57506007198116810362001a31575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001a12575b508051906001600160401b038211620012035768010000000000000000821162001203576037548260375580831062001989575b5060200190603760005260206000209060005b8160031c811062001939575060071981168103620018e0575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200124157600091620018c1575b508051906001600160401b038211620012035768010000000000000000821162001203576038548260385580831062001838575b5060200190603860005260206000209060005b8160031c8110620017e85750600719811681036200178f575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001770575b508051906001600160401b03821162001203576801000000000000000082116200120357603a5482603a55808310620016e7575b5060200190603a60005260206000209060005b8160031c8110620016975750600719811681036200163e575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562001241576000916200161f575b508051906001600160401b038211620012035768010000000000000000821162001203576039548260395580831062001596575b5060200190603960005260206000209060005b8160031c811062001546575060071981168103620014ed575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200124157600091620014ce575b508051906001600160401b03821162001203576801000000000000000082116200120357603b5482603b5580831062001446575b5060200190603b60005260206000209060005b8160031c8110620013f6575060071981168103806200139e575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562001241576000916200137f575b508051906001600160401b03821162001203576801000000000000000082116200120357603c5482603c55808310620012f7575b5060200190603c60005260206000209060005b8160031c8110620012a7575060071981168082036200124d575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620012415760009162001219575b508051906001600160401b03821162001203576801000000000000000082116200120357603d5482603d55808310620011a0575b5060200190603d60005260206000208160031c9160005b8381106200115057506007198116900380620010fb575b6040516202c253908162002d1b8239f35b9260009360005b8181106200111957505050015538808080620010ea565b909194602062001145600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162001102565b6000805b600881106200116b575083820155600101620010d3565b9590602062001196600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162001154565b603d6000526020600020600780850160031c8201920160031c0190601c8460021b1680620011e7575b505b818110620011da5750620010bc565b60008155600101620011cb565b600019908183019182549160200360031b1c16905538620011c9565b634e487b7160e01b600052604160045260246000fd5b6200123a91503d806000833e62001231818362002c60565b81019062002c84565b3862001088565b6040513d6000823e3d90fd5b9260009360005b8184038110620012705750505060031c0155388080806200101f565b90919460206200129c600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162001254565b6000805b60088110620012c257508382015560010162001005565b94906020620012ed600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620012ab565b603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e600284901b601c16806200135b575b50600780850160031c8201920160031c01905b8181106200134e575062000ff2565b600081556001016200133f565b60001990816007870160031c8401019182549160200360031b1c169055386200132c565b6200139791503d806000833e62001231818362002c60565b3862000fbe565b9260009360005b818110620013bf5750505060031c01553880808062000f57565b9091946020620013eb600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620013a5565b6000805b600881106200141157508382015560010162000f3d565b949060206200143c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620013fa565b603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d600284901b601c1680620014aa575b50600780850160031c8201920160031c01905b8181106200149d575062000f2a565b600081556001016200148e565b60001990816007870160031c8401019182549160200360031b1c169055386200147b565b620014e691503d806000833e62001231818362002c60565b3862000ef6565b60009260005b6007198316830381106200151157505060031c015538808062000e83565b909360206200153c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620014f3565b6000805b600881106200156157508382015560010162000e6a565b949060206200158c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200154a565b60396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3600284901b601c1680620015fb575b506007840160031c81015b6007830160031c82018110620015ee57505062000e57565b60008155600101620015d6565b60001990816007870160031c8401019182549160200360031b1c16905538620015cb565b6200163791503d806000833e62001231818362002c60565b3862000e23565b60009260005b6007198316830381106200166257505060031c015538808062000db0565b909360206200168d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001644565b6000805b60088110620016b257508382015560010162000d97565b94906020620016dd600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200169b565b603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e600284901b601c16806200174c575b506007840160031c81015b6007830160031c820181106200173f57505062000d84565b6000815560010162001727565b60001990816007870160031c8401019182549160200360031b1c169055386200171c565b6200178891503d806000833e62001231818362002c60565b3862000d50565b60009260005b600719831683038110620017b357505060031c015538808062000ce8565b90936020620017de600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001795565b6000805b600881106200180357508382015560010162000ccf565b949060206200182e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620017ec565b60386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199600284901b601c16806200189d575b506007840160031c81015b6007830160031c820181106200189057505062000cbc565b6000815560010162001878565b60001990816007870160031c8401019182549160200360031b1c169055386200186d565b620018d991503d806000833e62001231818362002c60565b3862000c88565b60009260005b6007198316830381106200190457505060031c015538808062000c15565b909360206200192f600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620018e6565b6000805b600881106200195457508382015560010162000bfc565b949060206200197f600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200193d565b60376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae600284901b601c1680620019ee575b506007840160031c81015b6007830160031c82018110620019e157505062000be9565b60008155600101620019c9565b60001990816007870160031c8401019182549160200360031b1c16905538620019be565b62001a2a91503d806000833e62001231818362002c60565b3862000bb5565b60009260005b60071983168303811062001a5557505060031c015538808062000b42565b9093602062001a80600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001a37565b6000805b6008811062001aa557508382015560010162000b29565b9490602062001ad0600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001a8e565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c168062001b3f575b506007840160031c81015b6007830160031c8201811062001b3257505062000b16565b6000815560010162001b1a565b60001990816007870160031c8401019182549160200360031b1c1690553862001b0f565b62001b7b91503d806000833e62001231818362002c60565b3862000ae2565b60009260005b60071983168303811062001ba657505060031c015538808062000a7a565b9093602062001bd1600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001b88565b6000805b6008811062001bf657508382015560010162000a61565b9490602062001c21600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001bdf565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c168062001c90575b506007840160031c81015b6007830160031c8201811062001c8357505062000a4e565b6000815560010162001c6b565b60001990816007870160031c8401019182549160200360031b1c1690553862001c60565b62001ccc91503d806000833e62001231818362002c60565b3862000a1a565b60009260005b60071983168303811062001cf757505060031c0155388080620009b2565b9093602062001d22600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001cd9565b6000805b6008811062001d4757508382015560010162000999565b9490602062001d72600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001d30565b602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f600284901b601c168062001de1575b506007840160031c81015b6007830160031c8201811062001dd457505062000986565b6000815560010162001dbc565b60001990816007870160031c8401019182549160200360031b1c1690553862001db1565b62001e1d91503d806000833e62001231818362002c60565b3862000952565b60009260005b60071983168303811062001e4857505060031c0155388080620008eb565b9093602062001e73600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001e2a565b6000805b6008811062001e98575083820155600101620008d2565b9490602062001ec3600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001e81565b602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2600284901b601c168062001f32575b506007840160031c81015b6007830160031c8201811062001f25575050620008bf565b6000815560010162001f0d565b60001990816007870160031c8401019182549160200360031b1c1690553862001f02565b62001f6e91503d806000833e62001231818362002c60565b386200088b565b60009260005b60071983168303811062001f9957505060031c015538808062000826565b9093602062001fc4600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001f7b565b6000805b6008811062001fe95750838201556001016200080d565b9490602062002014600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001fd2565b60296000527fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac600284901b601c168062002083575b506007840160031c81015b6007830160031c8201811062002076575050620007fa565b600081556001016200205e565b60001990816007870160031c8401019182549160200360031b1c1690553862002053565b620020bf91503d806000833e62001231818362002c60565b38620007c6565b60009260005b600719831683038110620020ea57505060031c015538808062000761565b9093602062002115600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620020cc565b6000805b600881106200213a57508382015560010162000748565b9490602062002165600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002123565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c1680620021d4575b506007840160031c81015b6007830160031c82018110620021c757505062000735565b60008155600101620021af565b60001990816007870160031c8401019182549160200360031b1c16905538620021a4565b6200221091503d806000833e62001231818362002c60565b3862000701565b60009260005b6007198316830381106200223b57505060031c01553880806200068e565b9093602062002266600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200221d565b6000805b600881106200228b57508382015560010162000675565b94906020620022b6600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002274565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168062002325575b506007840160031c81015b6007830160031c820181106200231857505062000662565b6000815560010162002300565b60001990816007870160031c8401019182549160200360031b1c16905538620022f5565b6200236191503d806000833e62001231818362002c60565b386200062e565b60009260005b6007198316830381106200238c57505060031c0155388080620005bb565b90936020620023b7600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200236e565b6000805b60088110620023dc575083820155600101620005a2565b9490602062002407600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620023c5565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c168062002476575b506007840160031c81015b6007830160031c82018110620024695750506200058f565b6000815560010162002451565b60001990816007870160031c8401019182549160200360031b1c1690553862002446565b620024b291503d806000833e62001231818362002c60565b386200055b565b60009260005b600719831683038110620024dd57505060031c0155388080620004e8565b9093602062002508600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620024bf565b6000805b600881106200252d575083820155600101620004cf565b9490602062002558600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002516565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c1680620025c7575b506007840160031c81015b6007830160031c82018110620025ba575050620004bc565b60008155600101620025a2565b60001990816007870160031c8401019182549160200360031b1c1690553862002597565b6200260391503d806000833e62001231818362002c60565b3862000488565b60009260005b6007198316830381106200262e57505060031c015538808062000415565b9093602062002659600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002610565b6000805b600881106200267e575083820155600101620003fc565b94906020620026a9600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002667565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c168062002718575b506007840160031c81015b6007830160031c820181106200270b575050620003e9565b60008155600101620026f3565b60001990816007870160031c8401019182549160200360031b1c16905538620026e8565b6200275491503d806000833e62001231818362002c60565b38620003b5565b60009260005b6007198316830381106200277f57505060031c015538808062000342565b90936020620027aa600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002761565b6000805b60088110620027cf57508382015560010162000329565b94906020620027fa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620027b8565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062002869575b506007840160031c81015b6007830160031c820181106200285c57505062000316565b6000815560010162002844565b60001990816007870160031c8401019182549160200360031b1c1690553862002839565b620028a591503d806000833e62001231818362002c60565b38620002e2565b60009260005b600719831683038110620028d057505060031c01553880806200027b565b90936020620028fb600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620028b2565b6000805b600881106200292057508382015560010162000262565b949060206200294b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002909565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620029ba575b506007840160031c81015b6007830160031c82018110620029ad5750506200024f565b6000815560010162002995565b60001990816007870160031c8401019182549160200360031b1c169055386200298a565b620029f691503d806000833e62001231818362002c60565b386200021b565b60009260005b60071983168303811062002a2157505060031c0155388080620001b6565b9093602062002a4c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002a03565b6000805b6008811062002a715750838201556001016200019d565b9490602062002a9c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002a5a565b601c6000526020600020601c8460021b168062002aee575b506007840160031c81015b6007830160031c8201811062002ae15750506200018a565b6000815560010162002ac9565b60001990816007870160031c8401019182549160200360031b1c1690553862002abe565b62002b2a91503d806000833e62001231818362002c60565b3862000156565b9260009360005b81811062002b525750505060031c015538808080620000ef565b909194602062002b7e600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162002b38565b6000805b6008811062002ba4575083820155600101620000d5565b9490602062002bcf600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002b8d565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062002c20575b505b81811062002c135750620000c2565b6000815560010162002c04565b600019908183019182549160200360031b1c1690553862002c02565b62002c5491503d806000833e62001231818362002c60565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200120357604052565b90602090818382031262002c5b5782516001600160401b039384821162002c5b570181601f8201121562002c5b57805193841162001203578360051b906040519462002cd38584018762002c60565b8552838086019282010192831162002c5b578301905b82821062002cf8575050505090565b81516001600160e01b03198116810362002c5b57815290830190830162002ce956fe60808060405260043610156200001457600080fd5b60009081803560e01c9182630a9254e41462004d5157505080631e3342941462004b565780631ed7831c1462004ad05780632d49aa1c14620049ae57806330dd2c45146200489857806337bdc99b146200469b5780633e5e3c2314620046155780633f7286f4146200458f5780634d238c8e14620045315780635c2c2fed1462003f3657806363323eb81462003efe57806366d9a9a01462003e475780637b1837de1462003b3857806385226c8114620039fd5780638710555714620039c6578063916a17c6146200390f578063951759c914620034815780639b2110801462002d155780639c821dc614620025d2578063a0aaa285146200208d578063a9fb763c1462001fe7578063b5508aa91462001e98578063ba414fa61462001e6f578063c33dd9d51462001630578063c69a046914620010c9578063d8d527131462000f44578063dd7849741462000f03578063e20c9f711462000e63578063ea1c89ed14620008c5578063eb8df0521462000459578063fa7626d41462000435578063fbfb892714620003fc5763fc6c1f0214620001b057600080fd5b34620003595760403660031901126200035957620001cd62005014565b620001d762007211565b90620001fd620001e782620072af565b92600093620001f682620060c7565b52620060c7565b506040516200020c8162004ec3565b60018152602036818301376200022560243591620060c7565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f85760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003ed57620003d7575b50604051906200028e8262004ec3565b438252836020830152823b15620003c8576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003cc579085939291620003aa575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039f576200036b575b50803b1562000367578180916004604051809481936390c5013b60e01b83525af180156200035c5762000343578280f35b6200034f829162004efb565b6200035957808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003909060603d811162000397575b62000387818362004f80565b81019062007268565b5062000312565b503d6200037b565b6040513d85823e3d90fd5b620003b9909391929362004efb565b620003c85790839138620002d1565b8380fd5b6040513d87823e3d90fd5b620003e59093919362004efb565b91386200027e565b6040513d86823e3d90fd5b8280fd5b5034620003595760603660031901126200035957620004326200041e62004ffd565b620004286200502b565b9060043562007651565b80f35b5034620003595780600319360112620003595760ff60209154166040519015158152f35b5034620003595760031960603682011262000367576200047862005014565b6044356002811015620003c857602d54620004b060009162000499620071e7565b50603e546001600160a01b03908116911662007931565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004eb602482018d62005354565b03818b5afa948515620008ba57869562000880575b506001850185116200086c576001870187116200086c57600460206200052a602435809662007203565b9960405192838092632472942560e01b82525afa9081156200086157879162000825575b5015620007ed57806200071b5750603f546001600160a01b0316906200057490620072af565b91813b15620007175790620005b08693928a620005c06040519788968795869463018f44b760e41b865260406004870152604486019062005354565b91848303016024850152620053e1565b03925af180156200039f57620006ff575b5090602092915b602d5462000641906200060c906001600160a01b0316620005f8620071e7565b50603e546001600160a01b03169062007931565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005354565b03915afa928315620006f35792620006b3575b5060010103620006795762000432936001620006729201146200758c565b14620075cc565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006ea575b81620006d26020938362004f80565b81010312620006e5575190600162000654565b600080fd5b3d9150620006c3565b604051903d90823e3d90fd5b6200070b839162004efb565b620003675738620005d1565b8580fd5b92989796959493926001146200073b575b505060209394959650620005d8565b603f549293926001600160a01b0316906200075690620072af565b91813b15620003c85790620007938489819594620007a36040519e8f978896879563028bf0d560e11b875260606004880152606487019062005354565b91858303016024860152620053e1565b90604483015203925af1968715620007e057602094959697620007ce575b879695949291926200072c565b620007d99062004efb565b38620007c1565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000858575b81620008436020938362004f80565b81010312620008545751386200054e565b8680fd5b3d915062000834565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008b1575b816200089f6020938362004f80565b81010312620007175751933862000500565b3d915062000890565b6040513d88823e3d90fd5b5034620003595760c036600319011262000359576004356001600160401b0381116200036757620008fb9036906004016200547e565b6200090562004ffd565b90620009106200502b565b6064356001600160a01b0381168103620006e557608435906001600160a01b0382168203620006e55760a435926001600160a01b0384168403620006e557604051956200095d8762004ea7565b6005875260005b60a0811062000e495750604051906200097d8262004edf565b6001600160a01b031681526020810188905262000999620056cd565b6040820152620009a987620060c7565b52620009b586620060c7565b5060405190620009c58262004edf565b6001600160a01b0316815260208101879052620009e1620058dd565b6040820152620009f186620060eb565b52620009fd85620060eb565b506040519062000a0d8262004edf565b6001600160a01b031681526020810186905262000a29620059ee565b604082015262000a3985620060fc565b5262000a4584620060fc565b506040519062000a558262004edf565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000dd45762000b0094549181811062000d3f575b81811062000d1f575b81811062000cff575b81811062000cdf575b81811062000cbf575b81811062000c9f575b81811062000c81575b1062000c6b575b50038262004f80565b604082015262000b10846200610d565b5262000b1c836200610d565b506040519062000b2c8262004edf565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000d5f5762000bcf94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262000bdf836200611e565b5262000beb826200611e565b50604051916114a4808401908482106001600160401b0383111762000c57579184939162000c1f936200971f8639620070b1565b039082f08015620007e057602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000af7565b602083811b6001600160e01b03191685529093019260010162000af0565b604083901b6001600160e01b031916845260209093019260010162000ae7565b606083901b6001600160e01b031916845260209093019260010162000ade565b608083901b6001600160e01b031916845260209093019260010162000ad5565b60a083901b6001600160e01b031916845260209093019260010162000acc565b60c083901b6001600160e01b031916845260209093019260010162000ac3565b60e083901b6001600160e01b031916845260209093019260010162000aba565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000b76565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a9f565b60209062000e5662006035565b82828b0101520162000964565b50346200035957806003193601126200035957604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b8582821062000ee35750505062000ec99250038362004f80565b62000edf604051928284938452830190620051a3565b0390f35b85546001600160a01b031684526001958601958895509301920162000eaf565b503462000359576020366003190112620003595762000edf62000f3362000f2962005014565b620005f8620071e7565b9160409593955195869586620053b1565b50346200035957604036600319011262000359578062000f6362005014565b6024356001600160401b0381116200108c5762000f8590369060040162005146565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620010c45760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008ba578691620010ac575b5050813b15620010a857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003ed57849162001090575b5050602d5416803b156200108c57620010668391670de0b6b3a7640000936040519485809481936330b858b160e11b8352602060048401526024830190620052c7565b03925af180156200035c57620010795750f35b620010849062004efb565b620003595780f35b5050fd5b6200109b9062004efb565b6200108c57823862001023565b8480fd5b620010b79062004efb565b620010a857843862000fdc565b505050fd5b50346200035957602036600319011262000359576004356001600160401b0381116200036757620010ff9036906004016200547e565b604051613942808201908282106001600160401b038311176200161c57908291620206158339039083f09081156200035c5760405161154f808201908282106001600160401b0383111762000c57579082916201f0c68339039084f080156200039f57604051610230808201908282106001600160401b03831117620016085790829162023f578339039085f0908115620003ed5760405161069b808201908282106001600160401b03831117620015f457908291620241878339039086f08015620003cc57604051612f0f808201908282106001600160401b03831117620015e0579082916201c1b78339039087f0908115620008ba57604051610884808201908282106001600160401b03831117620015cc579082916200ca118339039088f09384156200086157604051610d30808201908282106001600160401b03831117620015b8579082916200bce18339039089f0938415620015ad576200126562006058565b9760405190620012758262004edf565b6001600160a01b03168152602081018a905262001291620058dd565b6040820152620012a189620060c7565b52620012ad88620060c7565b5060405190620012bd8262004edf565b6001600160a01b0316815260208101899052620012d9620056cd565b6040820152620012e988620060eb565b52620012f587620060eb565b5060405190620013058262004edf565b6001600160a01b031681526020810188905262001321620059ee565b60408201526200133187620060fc565b526200133d86620060fc565b50604051906200134d8262004edf565b6001600160a01b03168152602081018790526200136962005aff565b604082015262001379866200610d565b5262001385856200610d565b5060405190620013958262004edf565b6001600160a01b0316815260208101869052620013b162005c10565b6040820152620013c1856200611e565b52620013cd846200611e565b5060405190620013dd8262004edf565b6001600160a01b0316815260208101859052620013f962005d21565b604082015262001409846200612f565b5262001415836200612f565b5060405190620014258262004edf565b60018060a01b0316815283602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b8060078301106200153857620014c894549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620014d88362006140565b52620014e48262006140565b50604051916114a4808401908482106001600160401b0383111762000c57579184939162001518936200971f8639620070b1565b039082f08015620007e0576040516001600160a01b039091168152602090f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201849293916200146f565b6040513d8a823e3d90fd5b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b503462000359576003196020368201126200036757600435906001600160401b038211620003f85760a090823603011262000367576040519060a082018281106001600160401b0382111762001e5957604052620016918160040162005042565b8252620016a16024820162005042565b6020830152620016b46044820162005042565b604083015260648101356001600160401b038111620003c857620016df906004369184010162005406565b60608301526084810135906001600160401b038211620003c85760046200170a923692010162005406565b6080820152604051908160a08101106001600160401b0360a08401111762001e595760a082016040526004825260005b6080811062001e3f575060405180610d308101106001600160401b03610d308301111762001e2b57610d306200bce1823980610d308101039084f080156200039f57604051806108848101106001600160401b03610884830111176200161c576108846200ca118239806108848101039085f0908115620003ed5760405180611ec58101106001600160401b03611ec58301111762000c5757611ec562024822823980611ec58101039086f0908115620003cc5760405180610b3d8101106001600160401b03610b3d830111176200160857610b3d620266e7823980610b3d8101039087f0928315620008ba5760405190620018368262004edf565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b80600783011062001db557620018d994549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620018e986620060c7565b52620018f585620060c7565b5060405190620019058262004edf565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062001d3f57620019a894549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620019b885620060eb565b52620019c484620060eb565b5060405190620019d48262004edf565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b80600783011062001cc95762001a7794549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262001a8784620060fc565b5262001a9383620060fc565b506040519062001aa38262004edf565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001c535762001b4694549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262001b56836200610d565b5262001b62826200610d565b506040519161111e90818401918483106001600160401b0384111762000c57579162001ba485949262001c0c946200abc3873960408352604083019062006175565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001bfa606084015160a0606085015260a0840190620051e2565b920151906080818403910152620051e2565b039082f08015620007e05760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001aed565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001a1e565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e08201520194019201849293916200194f565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001880565b634e487b7160e01b84526041600452602484fd5b60209062001e4c62006035565b828286010152016200173a565b634e487b7160e01b600052604160045260246000fd5b50346200035957806003193601126200035957602062001e8e620055ce565b6040519015158152f35b5034620003595780600319360112620003595760105462001eb98162004fe5565b9062001ec9604051928362004f80565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062001f11576040518062000edf8882620052ee565b604051849188549160019280841c90848116801562001fdc575b878310811462001fc8578284528794939291811562001faa575060011462001f6e575b5062001f5f81600196038262004f80565b81520197019201919562001ef9565b8b8952838920955088905b80821062001f92575081018301945062001f5f62001f4e565b86548383018601529585019587949091019062001f79565b60ff19168584015250151560051b81018301945062001f5f62001f4e565b634e487b7160e01b8a52602260045260248afd5b91607f169162001f2b565b503462000359576020366003190112620003595780806040516200200b8162004ec3565b601c81527f726577617264206d6574686f642063616c6c6564207769746820256400000000602082015260405162002079816200206260208201946309710a9d60e41b8652604060248401526064830190620052c7565b600435604483015203601f19810183528262004f80565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003595760c03660031901126200035957620020ab62005014565b6024908135916001831015620003c857620020c562004fa2565b91620020d062004fb9565b92620020db6200510a565b60405192620020ea8462004f64565b6000845260405193620020fd8562004ec3565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620025bd5790829162020615833903906000f0988915620025885760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f8082019082821089831117620025a8579082916201f0c6833903906000f0801562002588578a168b602f541617602f556040516102308082019082821089831117620025a85790829162023f57833903906000f0801562002588578a168b6031541617603155604051612f0f8082019082821089831117620025a8579082916201c1b7833903906000f0801562002588578a168b603254161760325560405161069b8082019082821089831117620025a85790829162024187833903906000f0801562002588578a168b6030541617603055604051610d308082019082821089831117620025a8579082916200bce1833903906000f0801562002588578a168b60335416176033556040516108848082019082821089831117620025a8579082916200ca11833903906000f093841562002588576200248097620024b8889485938f8f908160ff9b1680916034541617603455620022c062006058565b9d8e83602d541660405190620022d68262004edf565b8152600086820152620022e8620058dd565b6040820152620022f882620060c7565b526200230481620060c7565b5083602f541660405190620023198262004edf565b81526000868201526200232b620056cd565b60408201526200233b82620060eb565b526200234781620060eb565b508360315416604051906200235c8262004edf565b81526000868201526200236e620059ee565b60408201526200237e82620060fc565b526200238a81620060fc565b508360305416604051906200239f8262004edf565b8152600086820152620023b162005aff565b6040820152620023c1826200610d565b52620023cd816200610d565b50836032541660405190620023e28262004edf565b8152600086820152620023f462005c10565b604082015262002404826200611e565b5262002410816200611e565b50836033541660405190620024258262004edf565b81526000868201526200243762005d21565b604082015262002447826200612f565b5262002453816200612f565b5060405192620024638462004edf565b83526000858401526200247562005e32565b604084015262006140565b526200248c8d62006140565b5062002497620071b4565b9a6040519e8f620024a88162004f0f565b5216908d015260408c01620071a7565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a49081860192868410908411176200259457509184939162002529936200971f8639620070b1565b03906000f08015620025885716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035957806003193601126200035957604051620025f38162004f48565b6003815260005b6060811062002cfb575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039f57839062002cbc575b620026599150620072af565b6200266487620060c7565b526200267086620060c7565b5060405183815260c8600482015284818381895afa80156200039f57839062002c7d575b620026a09150620072af565b620026ab87620060eb565b52620026b786620060eb565b506040519280845261012c93846004820152858184818a5afa8015620003ed57849062002c3e575b620026eb9150620072af565b620026f688620060fc565b526200270287620060fc565b5060405195620027128762004f48565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008ba57869462002bff575b506200274f89620060c7565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200086157879162002bc2575b50846200278d8b620060eb565b9116905260405181815287600482015288818781875afa9081156200086157879162002b85575b5084620027c18b620060fc565b9116905260405190620027d48262004f48565b600382528b368a8401376040519080825283600483015289828881885afa918215620015ad57889262002b46575b50843b1562002a855760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562002ae257908a9162002b2e575b505060405182815260c860048201528b818a818a5afa90811562002ae2578a9162002af1575b50863b1562002aed5787604051918583521660048201528a898201528981604481838b5af1801562002ae257908a9162002ac6575b5050604051918252600482015289818881885afa908115620015ad57889162002a89575b50843b1562002a855785906040519283521660048201528786820152868160448183885af18015620008615790879162002a6d575b505080826200290b6200291f93620060c7565b52826200291882620060eb565b52620060fc565b52604051926200292f8462004ec3565b4384528487850152813b15620010a85760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003ed57918493918a9362002a4d575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035c5762002a2c575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b828210620029f757888803868a0152888062000edf8a8a620051a3565b9193975091848062002a1783979899605f198d82030186528b51620053e1565b990192019201889796959492939193620029da565b62002a4690873d8911620003975762000387818362004f80565b50620029b1565b62002a5d91935093919362004efb565b620003f857829188913862002974565b62002a789062004efb565b62000717578538620028f8565b8780fd5b90508981813d831162002abe575b62002aa3818362004f80565b8101031262002a855762002ab79062007253565b38620028c3565b503d62002a97565b62002ad19062004efb565b62002ade5788386200289f565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162002b26575b62002b0b818362004f80565b8101031262002aed5762002b1f9062007253565b386200286a565b503d62002aff565b62002b399062004efb565b62002ade57883862002844565b9091508981813d831162002b7d575b62002b61818362004f80565b8101031262002a855762002b759062007253565b903862002802565b503d62002b55565b90508881813d831162002bba575b62002b9f818362004f80565b81010312620008545762002bb39062007253565b38620027b4565b503d62002b93565b90508881813d831162002bf7575b62002bdc818362004f80565b81010312620008545762002bf09062007253565b3862002780565b503d62002bd0565b9093508781813d831162002c36575b62002c1a818362004f80565b81010312620007175762002c2e9062007253565b923862002743565b503d62002c0e565b508581813d831162002c75575b62002c57818362004f80565b81010312620003c85762002c6f620026eb9162007253565b620026df565b503d62002c4b565b508481813d831162002cb4575b62002c96818362004f80565b81010312620003f85762002cae620026a09162007253565b62002694565b503d62002c8a565b508481813d831162002cf3575b62002cd5818362004f80565b81010312620003f85762002ced620026599162007253565b6200264d565b503d62002cc9565b60209062002d08620071e7565b82828501015201620025fa565b503462000359576040366003190112620003595762002d3362005014565b62002d3d62004ffd565b603e546001600160a01b031690813b15620006e557604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003ed5762003465575b5062002d976004918362007931565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039f5783926200343d575b50602062002dfd91604051809381926390ba52cf60e01b8352846004840152602483019062005354565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f578684918293620033fe575b5060405163aa5106cb60e01b815292938391829162002e4d91906004840162007468565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f5762002ea1916020918591620033e0575b50604051809381926390ba52cf60e01b8352846004840152602483019062005354565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f35792620033a6575b50036200332f5762002ef762002efe9262002ef0670de0b6b3a76400006004971462007611565b156200758c565b15620075cc565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e05762002f569385918391620032eb575b5060405163aa5106cb60e01b815294859283926004840162007468565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed57849262003309575b5062002f8e60049293620072af565b6040519362002f9d8562004ec3565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e05762002ffb9383918391620032eb575060405163aa5106cb60e01b815294859283926004840162007468565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620032bd575b506200303090620072af565b604051916200303f8362004ec3565b8252602082015260405190620030558262004f64565b83825260405192620030678462004f2c565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be4008486015260405194620030ab8662004ec3565b855285602086015260405192620030c28462004ec3565b600194858552875b602081106200325657505050505082620030e482620060c7565b52620030f081620060c7565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003675760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035c576200323e575b50506042546001600160a01b031690813b15620010a85791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620032075750505050508383809203925af180156200039f57620031ef575b602082604051620031e481620031d5858201948686526040830190620074ed565b03601f19810183528262004f80565b519020604051908152f35b620031fb839162004efb565b620003675781620031b4565b92959750929550926020806200322987936043198c82030186528951620074ed565b970192019201928795938a9795929362003192565b620032499062004efb565b620003c857833862003141565b602090604051620032678162004ec3565b604051620032758162004f2c565b6200327f62007492565b81526200328b62007492565b848201528b60408201528b888201528b8682015287878201528b8582015281528a8382015282828901015201620030ca565b62003030919250620032e3903d8087833e620032da818362004f80565b8101906200743f565b919062003024565b6200330291503d8085833e620032da818362004f80565b3862002f39565b600492506200332762002f8e913d8088833e620032da818362004f80565b925062002f7f565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620033d7575b81620033c56020938362004f80565b81010312620006e55751903862002ec9565b3d9150620033b6565b620033f791503d8087833e620032da818362004f80565b3862002e7e565b925050506020813d60201162003434575b816200341e6020938362004f80565b81010312620006e55751828662002e4d62002e29565b3d91506200340f565b62002dfd9192506200345c6020913d8087833e620032da818362004f80565b92915062002dd3565b600491936200347862002d979262004efb565b93915062002d88565b503462000359576020806003193601126200036757620034a062005014565b91604051614ffa908181016001600160401b0392828210848311176200161c57908291620272248339039083f09081156200035c5760405161154f808201908282108483111762000c57579082916201f0c68339039084f09485156200039f57604051906200350f8262004edf565b600282528560005b60408110620038f657505060405196620035318862004edf565b6001600160a01b039485168852868801869052604051602980548083526000918252828a019a9291907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b81600784011062003880579a809c620035ee9385936200370e9b9c9d9e54918482821062003861575b82821062003842575b82821062003823575b82821062003804575b828210620037e5575b828210620037c6575b828210620037a9575b501062003793575b509050038262004f80565b6040820152620035fe84620060c7565b526200360a83620060c7565b5085604051916200361b8362004edf565b16815286888201526200362d620056cd565b60408201526200363d83620060eb565b526200364982620060eb565b50604051620036588162004f0f565b62003662620071e7565b815286888201528660408201528660608201528660808201528660a08201528660c08201528660e0820152866101008181840152600c61012083818601526402540be4006101409385858801528d600060405191620036c18362004ec3565b818352820152610160809801528d8c620036da620071b4565b99604051620036e98162004f64565b89815260405190620036fb8262004ec3565b607b8252848201526040519d8e62004f0f565b8d5216908b01528560408b0152670de0b6b3a764000060608b0152600160808b0152600a60a08b0152604660c08b0152606460e08b0152890152870152850152830152604051926114a480850191858310908311176200160857918493916200377d936200971f8639620070b1565b039083f0918215620006f3575060405191168152f35b6001600160e01b03191681528d910138620035e3565b83811b6001600160e01b03191685529093019260010184620035db565b604084901b6001600160e01b03191685529093019260010184620035d2565b606084901b6001600160e01b03191685529093019260010184620035c9565b608084901b6001600160e01b03191685529093019260010184620035c0565b60a084901b6001600160e01b03191685529093019260010184620035b7565b60c084901b6001600160e01b03191685529093019260010184620035ae565b60e084901b6001600160e01b03191685529093019260010184620035a5565b91816008600160079f8f9061010091885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019201939d50506200357c565b6200390062006035565b82828601015201869062003517565b50346200035957806003193601126200035957601354620039308162004fe5565b9062003940604051928362004f80565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062003987576040518062000edf878262005222565b6002826001926040516200399b8162004ec3565b848060a01b038a54168152620039b3858b0162005f43565b838201528152019601920191946200396f565b503462000359576040366003190112620003595762000edf62000f33620039ec62005014565b620039f662004ffd565b9062007931565b5034620003595780600319360112620003595760115462003a1e8162004fe5565b9062003a2e604051928362004f80565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062003a76576040518062000edf8882620052ee565b604051849188549160019280841c90848116801562003b2d575b878310811462001fc8578284528794939291811562003b0f575060011462003ad3575b5062003ac481600196038262004f80565b81520197019201919562003a5e565b8b8952838920955088905b80821062003af7575081018301945062003ac462003ab3565b86548383018601529585019587949091019062003ade565b60ff19168584015250151560051b81018301945062003ac462003ab3565b91607f169162003a90565b5034620003595760031990604036830112620003595762003b5862005014565b60249283359160018060a01b0362003bbf62003b8982602d541662003b7c620071e7565b5083603e54169062007931565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005354565b03915afa958615620025885760009662003e12575b506001860180961162003dfd576001890180991162003dfd578662003bfc8460049362007203565b9b60405192838092632472942560e01b82525afa908115620025885760009162003dca575b501562003d935762003c3887603f541694620072af565b93803b15620006e55762003c83946000938e6040519788958694859363018f44b760e41b85526040600486015262003c74604486018c62005354565b928584030190850152620053e1565b03925af190811562002588578a9762003ce693869362003d81575b5062003cbf87602d541662003cb2620071e7565b5088603e54169062007931565b9c935050989050604054169160405195869485938493845287600485015283019062005354565b03915afa908115620025885760009162003d4e575b500362003d165750620004329392916200067291146200758c565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d831162003d79575b62003d67818362004f80565b81010312620003595750513862003cfb565b503d62003d5b565b62003d8c9062004efb565b3862003c9e565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003df5575b62003de3818362004f80565b81010312620003595750513862003c21565b503d62003dd7565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162003e3f575b62003e2c818362004f80565b8101031262000359575051943862003bd4565b503d62003e20565b5034620003595780600319360112620003595760125462003e688162004fe5565b9062003e78604051928362004f80565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b83831062003ebf576040518062000edf878262005222565b60028260019260405162003ed38162004ec3565b848060a01b038a5416815262003eeb858b0162005f43565b8382015281520196019201919462003ea7565b50346200035957604036600319011262000359576200043262003f2062004ffd565b603e546001600160a01b03169060043562007651565b50346200035957610100366003190112620003595762003f5562005014565b60016024351015620003675762003f6b62004fa2565b62003f7562004fb9565b9162003f806200510a565b91600360c4351015620010a85760e43561ffff81168103620006e5576040519462003fab8662004f64565b600086526040519562003fbe8762004ec3565b607b875260208701526040516139428082018281106001600160401b0382111762001e5957829162020615833903906000f08015620025885760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b0382111762001e595782916201f0c6833903906000f08015620025885760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b0382111762001e5957829162023f57833903906000f08015620025885760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b0382111762001e595782916201c1b7833903906000f08015620025885760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b0382111762001e5957829162024187833903906000f08015620025885760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b0382111762001e595782916200bce1833903906000f08015620025885760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b0382111762001e595782916200ca11833903906000f09485156200258857603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620041f162006058565b602d54604051919b91906001600160a01b03166200420f8262004edf565b81526000602082015262004222620058dd565b6040820152620042328c620060c7565b526200423e8b620060c7565b50602f54604051906001600160a01b03166200425a8262004edf565b8152600060208201526200426d620056cd565b60408201526200427d8c620060eb565b52620042898b620060eb565b50603154604051906001600160a01b0316620042a58262004edf565b815260006020820152620042b8620059ee565b6040820152620042c88c620060fc565b52620042d48b620060fc565b50603054604051906001600160a01b0316620042f08262004edf565b8152600060208201526200430362005aff565b6040820152620043138c6200610d565b526200431f8b6200610d565b50603254604051906001600160a01b03166200433b8262004edf565b8152600060208201526200434e62005c10565b60408201526200435e8c6200611e565b526200436a8b6200611e565b50603354604051906001600160a01b0316620043868262004edf565b8152600060208201526200439962005d21565b6040820152620043a98c6200612f565b52620043b58b6200612f565b5060405190620043c58262004edf565b6001600160a01b0316815260006020820152620043e162005e32565b6040820152620043f18b62006140565b52620043fd8a62006140565b5062004408620071b4565b986040519b620044188d62004f0f565b8c526001600160a01b031660208c01526200443960243560408d01620071a7565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200447a60c435620060a6565b60c435610140840152610160830152604051916114a490818401928484106001600160401b0385111762001e59578493620044bb936200971f8639620070b1565b03906000f080156200258857602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b50346200035957602036600319011262000359576200454f62005014565b6200455962007211565b9062004569620001e782620072af565b506064620002256040516200457e8162004ec3565b6001815260203681830137620060c7565b50346200035957806003193601126200035957604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620045f55750505062000ec99250038362004f80565b85546001600160a01b0316845260019586019588955093019201620045db565b50346200035957806003193601126200035957604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200467b5750505062000ec99250038362004f80565b85546001600160a01b031684526001958601958895509301920162004661565b503462000359576020806003193601126200036757604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003cc57859262004859575b5060016001600160401b038093160190828211620048435780603f541690866200471233620072af565b92803b156200036757620047459382916040518080978194636b2c1eef60e01b83528d60048401526024830190620053e1565b0391600435905af1928315620007e057879362004826575b5050604054169360046040518096819382525afa928315620003cc578593620047e6575b50811691160362004790575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d83116200481e575b62004801818362004f80565b81010312620010a85762004816829162007377565b929062004781565b503d620047f5565b620048349192935062004efb565b6200071757849086386200475d565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162004890575b62004874818362004f80565b81010312620010a857620048889062007377565b9038620046e8565b503d62004868565b503462000359576020806003193601126200036757600435916001600160401b03918284116200036757366023850112156200036757836004013590620048df8262004fe5565b91620048ef604051938462004f80565b8083528183019560249687600593841b83010191368311620008545788859101915b8383106200499d57505050508384905b86821660038110156200499357855111156200497e5762004957879185681fffffffffffffffe085871b16880101519062007203565b91168681146200496b576001019062004921565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162004911565b5034620003595760403660031901126200035957600435620049cf62004ffd565b803190620049dc620071e7565b50603e546001600160a01b039290620049f89084168362007931565b50505092905083603f541686813b15620003595786916004604051809481936316989f6f60e21b83525af18015620008615762004ab7575b508062004a4f91319462004a43620071e7565b50603e54169062007931565b5050509390508482039182116200086c570362004a7d57620004329262004a769162007203565b1462007611565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562004ac862004a4f929762004efb565b959062004a30565b50346200035957806003193601126200035957604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062004b365750505062000ec99250038362004f80565b85546001600160a01b031684526001958601958895509301920162004b1c565b5034620003595760031960203682011262000367576001600160401b0360043511620003675760c0906004353603011262000359576040519062004b9a8262004ea7565b600435600401356001600160401b038111620003675762004bc390600436918135010162005057565b8252600435602481013560208401526044810135604084015262004bea906064016200511b565b6060830152608460043501356001600160401b038111620003675736602382600435010112156200036757600481813501013562004c288162004fe5565b9262004c38604051948562004f80565b81845260208401923660248460051b836004350101011162000367576024816004350101935b60248460051b83600435010101851062004cac57602062004c9a8888608082015262004c8f60a46004350162005193565b60a082015262006203565b6040516001600160a01b039091168152f35b84356001600160401b038111620003c85760606004358401820136036023190112620003c8576040519062004ce18262004edf565b600435840181016024810135835262004cfd9060440162005042565b60208301526001600160401b03606482866004350101013511620010a857602492602092839262004d3e903690600435890101606481013501870162005146565b6040820152815201950194905062004c5e565b81903462004ea4578160031936011262004ea4578062004d7360a09262004ea7565b62004d7d620071e7565b815282602082015282604082015282606082015260606080820152015260405162004da88162004f48565b600381526060366020830137600a62004dc182620060c7565b52600b62004dcf82620060eb565b52600b62004ddd82620060eb565b526040519062004ded8262004ec3565b607b8252602082015260405162004e048162004f64565b8281526040519162004e168362004ea7565b8252600a60208301526402540be4006040830152604660608301526080820152606460a08201526001600160a01b039062004e519062006203565b166001600160601b0360a01b8181603e541617603e55818160405416176040558181603f541617603f55818160425416176042558181604554161760455581816047541617604755604654161760465580f35b50fd5b60c081019081106001600160401b0382111762001e5957604052565b604081019081106001600160401b0382111762001e5957604052565b606081019081106001600160401b0382111762001e5957604052565b6001600160401b03811162001e5957604052565b61018081019081106001600160401b0382111762001e5957604052565b60e081019081106001600160401b0382111762001e5957604052565b608081019081106001600160401b0382111762001e5957604052565b602081019081106001600160401b0382111762001e5957604052565b90601f801991011681019081106001600160401b0382111762001e5957604052565b606435906001600160401b0382168203620006e557565b608435906001600160401b0382168203620006e557565b35906001600160401b0382168203620006e557565b6001600160401b03811162001e595760051b60200190565b602435906001600160a01b0382168203620006e557565b600435906001600160a01b0382168203620006e557565b604435906001600160a01b0382168203620006e557565b35906001600160a01b0382168203620006e557565b9190604083820312620006e55760405192620050738462004ec3565b836200507f8262004fd0565b815260209182810135906001600160401b038211620006e557019280601f85011215620006e5578335620050b38162004fe5565b94620050c3604051968762004f80565b818652848087019260051b820101928311620006e55784809101915b838310620050ef57505050500152565b8190620050fc8462005042565b8152019101908490620050df565b60a4359060ff82168203620006e557565b359060ff82168203620006e557565b6001600160401b03811162001e5957601f01601f191660200190565b81601f82011215620006e55780359062005160826200512a565b9262005170604051948562004f80565b82845260208383010111620006e557816000926020809301838601378301015290565b359061ffff82168203620006e557565b90815180825260208080930193019160005b828110620051c4575050505090565b83516001600160a01b031685529381019392810192600101620051b5565b90815180825260208080930193019160005b82811062005203575050505090565b83516001600160e01b03191685529381019392810192600101620051f4565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062005258575050505050505090565b90919293949596858062005290600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620051e2565b99019401940192959493919062005246565b60005b838110620052b65750506000910152565b8181015183820152602001620052a5565b90602091620052e281518092818552858086019101620052a2565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620053235750505050505090565b909192939495848062005343600193603f198682030187528a51620052c7565b980193019301919493929062005312565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005393575050505090565b83516001600160a01b03168552938101939281019260010162005384565b919594939092620053cd60809460a0855260a085019062005354565b966020840152604083015260608201520152565b9060406020620054039360ff81511684520151918160208201520190620052c7565b90565b81601f82011215620006e557803591620054208362004fe5565b9262005430604051948562004f80565b808452602092838086019260051b820101928311620006e5578301905b8282106200545c575050505090565b81356001600160e01b031981168103620006e55781529083019083016200544d565b9190918083036101a08112620006e5576040516200549c8162004f0f565b80948335906001600160401b038211620006e557620054bd91850162005057565b8152620054cd6020840162005042565b602082015260408301356001811015620006e557604082015260608301356060820152620054fe6080840162004fd0565b60808201526200551160a0840162004fd0565b60a08201526200552460c084016200511b565b60c08201526200553760e0840162005193565b60e08201526101008084013590820152610120918284013560009381850b8203620010a85783015261014080850135906003821015620010a857830152604061015f1990910112620003675760405192620055928462004ec3565b61016092838201359060028210156200035957508452620055b7906101800162005042565b60208401520152565b51908115158203620006e557565b6000805460081c60ff1615620055e8575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200560a57505090565b819250819060405182602082018381526519985a5b195960d21b604084015260408352620056388362004edf565b6200567460246040518093620056636020830197630667f9d760e41b895251809285850190620052a2565b810103600481018452018262004f80565b51925af1503d15620056c4573d906200568d826200512a565b916200569d604051938462004f80565b82523d81602084013e5b6020828051810103126200035957506020620054039101620055c0565b606090620056a7565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b8160078201106200586957846200577297549383831062005848575b83831062005827575b83831062005806575b838310620057e5575b838310620057c4575b838310620057a6575b5082821062005789575b501062005774575b509050038362004f80565b565b6001600160e01b031916815201803862005767565b83811b6001600160e01b031916855290930192600101846200575f565b84901b6001600160e01b031916855290930192600101843862005755565b606085901b6001600160e01b0319168652948101946001909201916200574c565b608085901b6001600160e01b03191686529481019460019092019162005743565b60a085901b6001600160e01b0319168652948101946001909201916200573a565b60c085901b6001600160e01b03191686529481019460019092019162005731565b60e085901b6001600160e01b03191686529481019460019092019162005728565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b831690880152911690850152600190960195889550610100909301926008016200570c565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b8160078201106200597a578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b831690880152911690850152600190960195889550610100909301926008016200591c565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b81600782011062005a8b578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005a2d565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005b9c578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005b3e565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005cad578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005c4f565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005dbe578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d60565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005ecf578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e71565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005fc1578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005f63565b60405190620060448262004edf565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b0382111762001e5957604052600782528160005b60e081106200608c575050565b6020906200609962006035565b828285010152016200607f565b60031115620060b157565b634e487b7160e01b600052602160045260246000fd5b805115620060d55760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620060d55760400190565b805160021015620060d55760600190565b805160031015620060d55760800190565b805160041015620060d55760a00190565b805160051015620060d55760c00190565b805160061015620060d55760e00190565b805160071015620060d5576101000190565b805160081015620060d5576101200190565b908082519081815260208091019281808460051b8301019501936000915b848310620061a45750505050505090565b9091929394958480620061f2600193601f198682030187528a51858060a01b03815116825283810151620061d881620060a6565b8483015260408091015191606080928201520190620051e2565b980193019301919493929062006193565b906040516117848082018281106001600160401b0382111762001e5957829162016a15833903906000f0801562002588576040516116598082018281106001600160401b0382111762001e595782916201ab5e833903906000f0801562002588576040516129c58082018281106001600160401b0382111762001e5957829162018199833903906000f09081156200258857604051612a728082018281106001600160401b0382111762001e5957829162013fa3833903906000f0801562002588576040516126e78082018281106001600160401b0382111762001e595782916200f4f6833903906000f0801562002588576040516122618082018281106001600160401b0382111762001e595782916200d295833903906000f090811562002588576040516123c68082018281106001600160401b0382111762001e5957829162011bdd833903906000f09283156200258857604051610d308082018281106001600160401b0382111762001e595782916200bce1833903906000f095861562002588576040516108848082018281106001600160401b0382111762001e595782916200ca11833903906000f09586156200258857604051986101408a018a81106001600160401b0382111762001e595760405260098a5260005b610120811062007096575060405190620063f98262004edf565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b80600783011062007021576200649d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620064ad8a620060c7565b52620064b989620060c7565b5060405190620064c98262004edf565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b80600783011062006fac576200656d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200657d8962006140565b52620065898862006140565b5060405190620065998262004edf565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062006f37576200663d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200664d8862006151565b52620066598762006151565b5060405190620066698262004edf565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b80600783011062006ec2576200670d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200671d8762006163565b52620067298662006163565b5060405190620067398262004edf565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b80600783011062006e4d57620067dd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620067ed86620060eb565b52620067f985620060eb565b5060405190620068098262004edf565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b80600783011062006dd857620068ad94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620068bd85620060fc565b52620068c984620060fc565b5060405190620068d98262004edf565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062006d63576200697d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200698d846200610d565b5262006999836200610d565b5060405190620069a98262004edf565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006cee5762006a4d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262006a5d836200611e565b5262006a69826200611e565b506040519062006a798262004edf565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006c795762006b1d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262006b2d826200612f565b5262006b39816200612f565b5060405190611b4d808301918383106001600160401b0384111762001e595762006b729162007bd2853960408352604083019062006175565b90602081830391015262006b90845160c0835260c083019062005354565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006c265750505050505060a061ffff8185969701511691015203906000f080156200258857603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006c68600193601f198682030188528660408d5180518452878060a01b038682015116868501520151918160408201520190620052c7565b990194019401929493919062006bdb565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006ac4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620069f4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006924565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006854565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006784565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620066b4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620065e4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006514565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006444565b808b60208093620070a662006035565b9201015201620063df565b90620070c69060408352604083019062006175565b906020818303910152620070e482516101a080845283019062005354565b9160018060a01b0380602083015116602084015260408201516001811015620060b1576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b9084015261014080830151906200717c82620060a6565b84015261016080920151918251926002841015620060b1576101809360209286015201511691015290565b6001821015620060b15752565b60006020604051620071c68162004ec3565b8281520152604051620071d98162004ec3565b600081526000602082015290565b60405190620071f68262004ec3565b6060602083600081520152565b919082018092116200484357565b60405190620072208262004ec3565b600182528160005b602090818110156200724e5760209162007241620071e7565b9082850101520162007228565b505050565b51906001600160a01b0382168203620006e557565b809291039160608312620006e55760406200728382620055c0565b93601f190112620006e55760408051916200729e8362004ec3565b602081015183520151602082015290565b6001600160401b0390620072c2620071e7565b506200735e6040918251906001600160601b03199060601b16602082015260148152620072ef8162004ec3565b6200734f835191620073018362004edf565b600a83526fffffffffffffffffffffffffffffffff6020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a0830190620052c7565b03601f19810184528362004f80565b51906200736b8262004ec3565b60048252602082015290565b51906001600160401b0382168203620006e557565b9190604083820312620006e55760405192620073a88462004ec3565b83620073b48262007377565b815260209182810151906001600160401b038211620006e557019280601f85011215620006e5578351620073e88162004fe5565b94620073f8604051968762004f80565b818652848087019260051b820101928311620006e55784809101915b8383106200742457505050500152565b8190620074318462007253565b815201910190849062007414565b90602082820312620006e55781516001600160401b038111620006e5576200540392016200738c565b906200748260209194939460408452604084019062005354565b6001600160a01b03909416910152565b60405190620074a18262004ec3565b81620074ac620071e7565b81526020620074ba620071e7565b910152565b62005403916020620074db835160408452604084019062005354565b920151906020818403910152620053e1565b906020808351936040845260c06200757962007517875160e06040890152610120880190620074bf565b620075348589015191603f1992838a83030160608b0152620074bf565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152620052c7565b9501516101008501520151151591015290565b156200759457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b15620075d457565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b156200761957565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e557829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af18015620079275790889493929162007910575b50620076ae85918462007931565b9b93969298919a90508554168551938480926394074b0360e01b82525afa91821562007906578392620078e6575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b908184528884806200771c60209b8c8095840152602483019062005354565b0381865af4938415620078dc579086918295620078a0575b50875163aa5106cb60e01b81529495859182916200775691908d840162007468565b0381855af49283156200789657916200778f93918893879362007876575b5087518095819482938352868d840152602483019062005354565b03915af49283156200786b579262007836575b5003620077c3575050509162002ef062002ef7926200577295941462007611565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d831162007863575b62007851818362004f80565b81010312620006e557519038620077a2565b503d62007845565b8451903d90823e3d90fd5b6200788e9193503d8089833e620032da818362004f80565b913862007774565b86513d87823e3d90fd5b89809296508193503d8311620078d4575b620078bd818362004f80565b81010312620006e557519285906200775662007734565b503d620078b1565b87513d88823e3d90fd5b620078fe9192503d8085833e620032da818362004f80565b9038620076dc565b84513d85823e3d90fd5b9462007920620076ae9662004efb565b94620076a0565b83513d87823e3d90fd5b906200793c620071e7565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa91821562007bc75792809291620079d094829362007ba7575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007468565b0381845af492831562007b7a57829362007b84575b5062007a16929385541693855180926390ba52cf60e01b825281806020978895866004840152602483019062005354565b03915af490811562007b7a57908291829162007b43575b50602486518096819363017187cd60e11b835260048301525afa92831562007b3757819362007a84575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e62007a99818362004f80565b8101918382840312620003595781516001600160401b0392838211620003f857019060c082850312620003595785519462007ad48662004ea7565b825186528083015190860152858201518686015262007af66060830162007377565b606086015262007b096080830162007377565b608086015260a082015192831162000359575062007b299291016200738c565b60a082015238808062007a57565b508351903d90823e3d90fd5b809250848092503d831162007b72575b62007b5f818362004f80565b8101031262000367578190513862007a2d565b503d62007b53565b85513d84823e3d90fd5b62007a16935062007ba0903d8085833e620032da818362004f80565b92620079e5565b62007bbf9193503d8084833e620032da818362004f80565b91386200799d565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a264697066735822122053420378ab697eb83eda176a91226251d8288d6144ae7628d920c96155026d5664736f6c63430008130033","sourceMap":"3506:1513:92:-:0;;;;;;;1594:4:2;3506:1513:92;;;;1594:4:2;3506:1513:92;;;1594:4:2;3506:1513:92;3201:4:5;3506:1513:92;;;3201:4:5;3506:1513:92;;;;4355:55:91;;3506:1513:92;3201:4:5;4355:55:91;;3506:1513:92;;;;;;;;;;;1594:4:2;4355:15:91;3506:1513:92;4355:15:91;;:55;;;;;;;1594:4:2;4355:55:91;;;-1:-1:-1;;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;4324:86:91;3506:1513:92;;4324:86:91;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;4324:86:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;;;;;4457:53:91;;3506:1513:92;3201:4:5;4457:53:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;1594:4:2;4355:15:91;3506:1513:92;4355:15:91;;4457:53;;;;;;;1594:4:2;4457:53:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;4420:90:91;3506:1513:92;;4420:90:91;3506:1513:92;;;;;;;;;;;4420:90:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;4546:51:91;;3506:1513:92;3201:4:5;4546:51:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;4546:51;;;;;;;1594:4:2;4546:51:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;4520:77:91;3506:1513:92;;4520:77:91;3506:1513:92;;;;;;;;;;;4520:77:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;4633:53:91;;3506:1513:92;3201:4:5;4633:53:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;4633:53;;;;;;;1594:4:2;4633:53:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;4607:79:91;3506:1513:92;;4607:79:91;3506:1513:92;;;;;;;;;;;4607:79:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7019:58:91;;3506:1513:92;3201:4:5;7019:58:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7019:58;;;;;;;1594:4:2;7019:58:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7108:59:91;;3506:1513:92;3201:4:5;7108:59:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7108:59;;;;;;;1594:4:2;7108:59:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7087:80:91;3506:1513:92;;7087:80:91;3506:1513:92;;;;;;;;;;;7087:80:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7197:57:91;;3506:1513:92;3201:4:5;7197:57:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7197:57;;;;;;;1594:4:2;7197:57:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7177:77:91;3506:1513:92;;7177:77:91;3506:1513:92;;;;;;;;;;;7177:77:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7286:58:91;;3506:1513:92;3201:4:5;7286:58:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7286:58;;;;;;;1594:4:2;7286:58:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7264:80:91;3506:1513:92;;7264:80:91;3506:1513:92;;;;;;;;;;;7264:80:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7380:65:91;;3506:1513:92;3201:4:5;7380:65:91;;3506:1513:92;4520:77:91;3506:1513:92;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7380:65;;;;;;;1594:4:2;7380:65:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7354:91:91;3506:1513:92;;7354:91:91;3506:1513:92;;;;;;;;;;;7354:91:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7482:51:91;;3506:1513:92;3201:4:5;7482:51:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7482:51;;;;;;;1594:4:2;7482:51:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7455:78:91;3506:1513:92;;7455:78:91;3506:1513:92;;;;;;;;;;;7455:78:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7563:51:91;;3506:1513:92;3201:4:5;7563:51:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7563:51;;;;;;;1594:4:2;7563:51:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7543:71:91;3506:1513:92;;7543:71:91;3506:1513:92;;;;;;;;;;;7543:71:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;7644:53:91;;3506:1513:92;3201:4:5;7644:53:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;7644:53;;;;;;;1594:4:2;7644:53:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;7624:73:91;3506:1513:92;;7624:73:91;3506:1513:92;;;;;;;;;;;7624:73:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;5541:54:91;;3506:1513:92;3201:4:5;5541:54:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;5541:54;;;;;;;1594:4:2;5541:54:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;5509:86:91;3506:1513:92;;5509:86:91;3506:1513:92;;;;;;;;;;;5509:86:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;5637:54:91;;3506:1513:92;3201:4:5;5637:54:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;5637:54;;;;;;;1594:4:2;5637:54:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;5605:86:91;3506:1513:92;;5605:86:91;3506:1513:92;;;;;;;;;;;5605:86:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;5735:56:91;;3506:1513:92;3201:4:5;5735:56:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;5735:56;;;;;;;1594:4:2;5735:56:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;5701:90:91;3506:1513:92;;5701:90:91;3506:1513:92;;;;;;;;;;;5701:90:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;5834:55:91;;3506:1513:92;3201:4:5;5834:55:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;5834:55;;;;;;;1594:4:2;5834:55:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;5801:88:91;3506:1513:92;;5801:88:91;3506:1513:92;;;;;;;;;;;5801:88:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;5920:54:91;;3506:1513:92;3201:4:5;5920:54:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;5920:54;;;;;;;1594:4:2;5920:54:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;5900:74:91;3506:1513:92;;5900:74:91;3506:1513:92;;;;;;;;;;;5900:74:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;6005:55:91;;3506:1513:92;3201:4:5;6005:55:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;6005:55;;;;;;;1594:4:2;6005:55:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;5984:76:91;3506:1513:92;;5984:76:91;3506:1513:92;;;;;;;;;;;5984:76:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;6093:57:91;;3506:1513:92;3201:4:5;6093:57:91;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;4355:15:91;6093:57;;;;;;;1594:4:2;6093:57:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;6070:80:91;3506:1513:92;;6070:80:91;3506:1513:92;;;;;;;;;;;6070:80:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;6180:51:91;;3506:1513:92;3201:4:5;6180:51:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;;;3506:1513:92;;;4355:15:91;6180:51;;;;;;;1594:4:2;6180:51:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;6160:71:91;3506:1513:92;;6160:71:91;3506:1513:92;;;;;;;;;;;6160:71:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;-1:-1:-1;;3506:1513:92;;-1:-1:-1;;;6260:53:91;;3506:1513:92;3201:4:5;6260:53:91;;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;-1:-1:-1;;;;3506:1513:92;;;4355:15:91;6260:53;;;;;;;1594:4:2;6260:53:91;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;6241:72:91;3506:1513:92;;6241:72:91;3506:1513:92;;;;;;;;;;;6241:72:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;1594:4:2;3506:1513:92;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6241:72:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;3201:4:5;3506:1513:92;;1594:4:2;3506:1513:92;6260:53:91;;;;;;1594:4:2;6260:53:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3506:1513:92;;;1594:4:2;3506:1513:92;;;;;;;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:71:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:51:91;;;;;;1594:4:2;6180:51:91;;;;;;:::i;:::-;;;;3506:1513:92;;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6070:80:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:57:91;;;;;;1594:4:2;6093:57:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:76:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:55:91;;;;;;1594:4:2;6005:55:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:74:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5920:54:91;;;;;;1594:4:2;5920:54:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:88:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:55:91;;;;;;1594:4:2;5834:55:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5701:90:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:56:91;;;;;;1594:4:2;5735:56:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:86:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5637:54:91;;;;;;1594:4:2;5637:54:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5509:86:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:54:91;;;;;;1594:4:2;5541:54:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:73:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7644:53:91;;;;;;1594:4:2;7644:53:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7543:71:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7563:51:91;;;;;;1594:4:2;7563:51:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7455:78:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7482:51:91;;;;;;1594:4:2;7482:51:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7354:91:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:65:91;;;;;;1594:4:2;7380:65:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:80:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:58:91;;;;;;1594:4:2;7286:58:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7177:77:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7197:57:91;;;;;;1594:4:2;7197:57:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:80:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7108:59:91;;;;;;1594:4:2;7108:59:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7019:58:91;;;;;;1594:4:2;7019:58:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:79:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:53:91;;;;;;1594:4:2;4633:53:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4520:77:91;1594:4:2;3506:1513:92;;;;;;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4546:51:91;;;;;;1594:4:2;4546:51:91;;;;;;:::i;:::-;;;;3506:1513:92;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4420:90:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;4420:90:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4457:53:91;;;;;;1594:4:2;4457:53:91;;;;;;:::i;:::-;;;;3506:1513:92;;1594:4:2;3506:1513:92;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;;;;1594:4:2;3506:1513:92;;;;;;;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:86:91;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3506:1513:92;;1594:4:2;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;4355:55:91;;;;;;1594:4:2;4355:55:91;;;;;;:::i;:::-;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":103346,"length":20},{"start":109265,"length":20},{"start":113779,"length":20},{"start":121130,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":75666,"length":20},{"start":77847,"length":20},{"start":78421,"length":20},{"start":102223,"length":20},{"start":124134,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":66876,"length":20},{"start":67647,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":159539,"length":20},{"start":172176,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":87884,"length":20},{"start":101861,"length":20},{"start":123636,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":23324,"length":20},{"start":23404,"length":20},{"start":23488,"length":20},{"start":23669,"length":20},{"start":23834,"length":20},{"start":41978,"length":20},{"start":42696,"length":20},{"start":51678,"length":20},{"start":66545,"length":20},{"start":73895,"length":20},{"start":74483,"length":20},{"start":75356,"length":20},{"start":77414,"length":20},{"start":77701,"length":20},{"start":78251,"length":20},{"start":81301,"length":20},{"start":83700,"length":20},{"start":83797,"length":20},{"start":84892,"length":20},{"start":87553,"length":20},{"start":87655,"length":20},{"start":87985,"length":20},{"start":88070,"length":20},{"start":88171,"length":20},{"start":88256,"length":20},{"start":89743,"length":20},{"start":89821,"length":20},{"start":89926,"length":20},{"start":90082,"length":20},{"start":90632,"length":20},{"start":90873,"length":20},{"start":90954,"length":20},{"start":96427,"length":20},{"start":100930,"length":20},{"start":101606,"length":20},{"start":107201,"length":20},{"start":107420,"length":20},{"start":107500,"length":20},{"start":107681,"length":20},{"start":107862,"length":20},{"start":121312,"length":20},{"start":123372,"length":20},{"start":143315,"length":20},{"start":165069,"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":1544,"length":20},{"start":1755,"length":20},{"start":1952,"length":20},{"start":2149,"length":20},{"start":2348,"length":20},{"start":2548,"length":20},{"start":2748,"length":20},{"start":2959,"length":20},{"start":3170,"length":20},{"start":3370,"length":20},{"start":3581,"length":20},{"start":3792,"length":20},{"start":3992,"length":20},{"start":4194,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b60009081803560e01c9182630a9254e41462004d5157505080631e3342941462004b565780631ed7831c1462004ad05780632d49aa1c14620049ae57806330dd2c45146200489857806337bdc99b146200469b5780633e5e3c2314620046155780633f7286f4146200458f5780634d238c8e14620045315780635c2c2fed1462003f3657806363323eb81462003efe57806366d9a9a01462003e475780637b1837de1462003b3857806385226c8114620039fd5780638710555714620039c6578063916a17c6146200390f578063951759c914620034815780639b2110801462002d155780639c821dc614620025d2578063a0aaa285146200208d578063a9fb763c1462001fe7578063b5508aa91462001e98578063ba414fa61462001e6f578063c33dd9d51462001630578063c69a046914620010c9578063d8d527131462000f44578063dd7849741462000f03578063e20c9f711462000e63578063ea1c89ed14620008c5578063eb8df0521462000459578063fa7626d41462000435578063fbfb892714620003fc5763fc6c1f0214620001b057600080fd5b34620003595760403660031901126200035957620001cd62005014565b620001d762007211565b90620001fd620001e782620072af565b92600093620001f682620060c7565b52620060c7565b506040516200020c8162004ec3565b60018152602036818301376200022560243591620060c7565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f85760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003ed57620003d7575b50604051906200028e8262004ec3565b438252836020830152823b15620003c8576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003cc579085939291620003aa575b506043546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039f576200036b575b50803b1562000367578180916004604051809481936390c5013b60e01b83525af180156200035c5762000343578280f35b6200034f829162004efb565b6200035957808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003909060603d811162000397575b62000387818362004f80565b81019062007268565b5062000312565b503d6200037b565b6040513d85823e3d90fd5b620003b9909391929362004efb565b620003c85790839138620002d1565b8380fd5b6040513d87823e3d90fd5b620003e59093919362004efb565b91386200027e565b6040513d86823e3d90fd5b8280fd5b5034620003595760603660031901126200035957620004326200041e62004ffd565b620004286200502b565b9060043562007651565b80f35b5034620003595780600319360112620003595760ff60209154166040519015158152f35b5034620003595760031960603682011262000367576200047862005014565b6044356002811015620003c857602d54620004b060009162000499620071e7565b50603e546001600160a01b03908116911662007931565b9195939792505060018060a01b03604054169560405193639d3070b560e01b85526020600486015260208580620004eb602482018d62005354565b03818b5afa948515620008ba57869562000880575b506001850185116200086c576001870187116200086c57600460206200052a602435809662007203565b9960405192838092632472942560e01b82525afa9081156200086157879162000825575b5015620007ed57806200071b5750603f546001600160a01b0316906200057490620072af565b91813b15620007175790620005b08693928a620005c06040519788968795869463018f44b760e41b865260406004870152604486019062005354565b91848303016024850152620053e1565b03925af180156200039f57620006ff575b5090602092915b602d5462000641906200060c906001600160a01b0316620005f8620071e7565b50603e546001600160a01b03169062007931565b9893505098905060018060a01b03604054166040518080958194639d3070b560e01b8352866004840152602483019062005354565b03915afa928315620006f35792620006b3575b5060010103620006795762000432936001620006729201146200758c565b14620075cc565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006ea575b81620006d26020938362004f80565b81010312620006e5575190600162000654565b600080fd5b3d9150620006c3565b604051903d90823e3d90fd5b6200070b839162004efb565b620003675738620005d1565b8580fd5b92989796959493926001146200073b575b505060209394959650620005d8565b603f549293926001600160a01b0316906200075690620072af565b91813b15620003c85790620007938489819594620007a36040519e8f978896879563028bf0d560e11b875260606004880152606487019062005354565b91858303016024860152620053e1565b90604483015203925af1968715620007e057602094959697620007ce575b879695949291926200072c565b620007d99062004efb565b38620007c1565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000858575b81620008436020938362004f80565b81010312620008545751386200054e565b8680fd5b3d915062000834565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008b1575b816200089f6020938362004f80565b81010312620007175751933862000500565b3d915062000890565b6040513d88823e3d90fd5b5034620003595760c036600319011262000359576004356001600160401b0381116200036757620008fb9036906004016200547e565b6200090562004ffd565b90620009106200502b565b6064356001600160a01b0381168103620006e557608435906001600160a01b0382168203620006e55760a435926001600160a01b0384168403620006e557604051956200095d8762004ea7565b6005875260005b60a0811062000e495750604051906200097d8262004edf565b6001600160a01b031681526020810188905262000999620056cd565b6040820152620009a987620060c7565b52620009b586620060c7565b5060405190620009c58262004edf565b6001600160a01b0316815260208101879052620009e1620058dd565b6040820152620009f186620060eb565b52620009fd85620060eb565b506040519062000a0d8262004edf565b6001600160a01b031681526020810186905262000a29620059ee565b604082015262000a3985620060fc565b5262000a4584620060fc565b506040519062000a558262004edf565b60018060a01b0316815284602082015260405180816020602754928381520160276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b926000905b80600783011062000dd45762000b0094549181811062000d3f575b81811062000d1f575b81811062000cff575b81811062000cdf575b81811062000cbf575b81811062000c9f575b81811062000c81575b1062000c6b575b50038262004f80565b604082015262000b10846200610d565b5262000b1c836200610d565b506040519062000b2c8262004edf565b60018060a01b0316815283602082015260405180816020602854928381520160286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5926000905b80600783011062000d5f5762000bcf94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262000bdf836200611e565b5262000beb826200611e565b50604051916114a4808401908482106001600160401b0383111762000c57579184939162000c1f936200971f8639620070b1565b039082f08015620007e057602c80546001600160a01b031981166001600160a01b039093169283179091556040519216178152602090f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000af7565b602083811b6001600160e01b03191685529093019260010162000af0565b604083901b6001600160e01b031916845260209093019260010162000ae7565b606083901b6001600160e01b031916845260209093019260010162000ade565b608083901b6001600160e01b031916845260209093019260010162000ad5565b60a083901b6001600160e01b031916845260209093019260010162000acc565b60c083901b6001600160e01b031916845260209093019260010162000ac3565b60e083901b6001600160e01b031916845260209093019260010162000aba565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000b76565b916008919350610100600191865463ffffffff60e01b90818160e01b168352818160c01b16602084015260a08282821b1660408501526080838360608282851b16818901521b1690850152828260401b1690840152818160201b1660c08401521660e082015201940192018492939162000a9f565b60209062000e5662006035565b82828b0101520162000964565b50346200035957806003193601126200035957604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b8582821062000ee35750505062000ec99250038362004f80565b62000edf604051928284938452830190620051a3565b0390f35b85546001600160a01b031684526001958601958895509301920162000eaf565b503462000359576020366003190112620003595762000edf62000f3362000f2962005014565b620005f8620071e7565b9160409593955195869586620053b1565b50346200035957604036600319011262000359578062000f6362005014565b6024356001600160401b0381116200108c5762000f8590369060040162005146565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620010c45760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008ba578691620010ac575b5050813b15620010a857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003ed57849162001090575b5050602d5416803b156200108c57620010668391670de0b6b3a7640000936040519485809481936330b858b160e11b8352602060048401526024830190620052c7565b03925af180156200035c57620010795750f35b620010849062004efb565b620003595780f35b5050fd5b6200109b9062004efb565b6200108c57823862001023565b8480fd5b620010b79062004efb565b620010a857843862000fdc565b505050fd5b50346200035957602036600319011262000359576004356001600160401b0381116200036757620010ff9036906004016200547e565b604051613942808201908282106001600160401b038311176200161c57908291620206158339039083f09081156200035c5760405161154f808201908282106001600160401b0383111762000c57579082916201f0c68339039084f080156200039f57604051610230808201908282106001600160401b03831117620016085790829162023f578339039085f0908115620003ed5760405161069b808201908282106001600160401b03831117620015f457908291620241878339039086f08015620003cc57604051612f0f808201908282106001600160401b03831117620015e0579082916201c1b78339039087f0908115620008ba57604051610884808201908282106001600160401b03831117620015cc579082916200ca118339039088f09384156200086157604051610d30808201908282106001600160401b03831117620015b8579082916200bce18339039089f0938415620015ad576200126562006058565b9760405190620012758262004edf565b6001600160a01b03168152602081018a905262001291620058dd565b6040820152620012a189620060c7565b52620012ad88620060c7565b5060405190620012bd8262004edf565b6001600160a01b0316815260208101899052620012d9620056cd565b6040820152620012e988620060eb565b52620012f587620060eb565b5060405190620013058262004edf565b6001600160a01b031681526020810188905262001321620059ee565b60408201526200133187620060fc565b526200133d86620060fc565b50604051906200134d8262004edf565b6001600160a01b03168152602081018790526200136962005aff565b604082015262001379866200610d565b5262001385856200610d565b5060405190620013958262004edf565b6001600160a01b0316815260208101869052620013b162005c10565b6040820152620013c1856200611e565b52620013cd846200611e565b5060405190620013dd8262004edf565b6001600160a01b0316815260208101859052620013f962005d21565b604082015262001409846200612f565b5262001415836200612f565b5060405190620014258262004edf565b60018060a01b0316815283602082015260405180816020602b549283815201602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f926000905b8060078301106200153857620014c894549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620014d88362006140565b52620014e48262006140565b50604051916114a4808401908482106001600160401b0383111762000c57579184939162001518936200971f8639620070b1565b039082f08015620007e0576040516001600160a01b039091168152602090f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201849293916200146f565b6040513d8a823e3d90fd5b634e487b7160e01b8b52604160045260248bfd5b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b503462000359576003196020368201126200036757600435906001600160401b038211620003f85760a090823603011262000367576040519060a082018281106001600160401b0382111762001e5957604052620016918160040162005042565b8252620016a16024820162005042565b6020830152620016b46044820162005042565b604083015260648101356001600160401b038111620003c857620016df906004369184010162005406565b60608301526084810135906001600160401b038211620003c85760046200170a923692010162005406565b6080820152604051908160a08101106001600160401b0360a08401111762001e595760a082016040526004825260005b6080811062001e3f575060405180610d308101106001600160401b03610d308301111762001e2b57610d306200bce1823980610d308101039084f080156200039f57604051806108848101106001600160401b03610884830111176200161c576108846200ca118239806108848101039085f0908115620003ed5760405180611ec58101106001600160401b03611ec58301111762000c5757611ec562024822823980611ec58101039086f0908115620003cc5760405180610b3d8101106001600160401b03610b3d830111176200160857610b3d620266e7823980610b3d8101039087f0928315620008ba5760405190620018368262004edf565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b80600783011062001db557620018d994549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620018e986620060c7565b52620018f585620060c7565b5060405190620019058262004edf565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b80600783011062001d3f57620019a894549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620019b885620060eb565b52620019c484620060eb565b5060405190620019d48262004edf565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b80600783011062001cc95762001a7794549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262001a8784620060fc565b5262001a9383620060fc565b506040519062001aa38262004edf565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062001c535762001b4694549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262001b56836200610d565b5262001b62826200610d565b506040519161111e90818401918483106001600160401b0384111762000c57579162001ba485949262001c0c946200abc3873960408352604083019062006175565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001bfa606084015160a0606085015260a0840190620051e2565b920151906080818403910152620051e2565b039082f08015620007e05760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001aed565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001a1e565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e08201520194019201849293916200194f565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001880565b634e487b7160e01b84526041600452602484fd5b60209062001e4c62006035565b828286010152016200173a565b634e487b7160e01b600052604160045260246000fd5b50346200035957806003193601126200035957602062001e8e620055ce565b6040519015158152f35b5034620003595780600319360112620003595760105462001eb98162004fe5565b9062001ec9604051928362004f80565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b84831062001f11576040518062000edf8882620052ee565b604051849188549160019280841c90848116801562001fdc575b878310811462001fc8578284528794939291811562001faa575060011462001f6e575b5062001f5f81600196038262004f80565b81520197019201919562001ef9565b8b8952838920955088905b80821062001f92575081018301945062001f5f62001f4e565b86548383018601529585019587949091019062001f79565b60ff19168584015250151560051b81018301945062001f5f62001f4e565b634e487b7160e01b8a52602260045260248afd5b91607f169162001f2b565b503462000359576020366003190112620003595780806040516200200b8162004ec3565b601c81527f726577617264206d6574686f642063616c6c6564207769746820256400000000602082015260405162002079816200206260208201946309710a9d60e41b8652604060248401526064830190620052c7565b600435604483015203601f19810183528262004f80565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003595760c03660031901126200035957620020ab62005014565b6024908135916001831015620003c857620020c562004fa2565b91620020d062004fb9565b92620020db6200510a565b60405192620020ea8462004f64565b6000845260405193620020fd8562004ec3565b607b85526020908186015260405192613942938481016001600160401b039582821087831117620025bd5790829162020615833903906000f0988915620025885760018060a01b0398896001600160601b0360a01b9b168b602d541617602d5560405161154f8082019082821089831117620025a8579082916201f0c6833903906000f0801562002588578a168b602f541617602f556040516102308082019082821089831117620025a85790829162023f57833903906000f0801562002588578a168b6031541617603155604051612f0f8082019082821089831117620025a8579082916201c1b7833903906000f0801562002588578a168b603254161760325560405161069b8082019082821089831117620025a85790829162024187833903906000f0801562002588578a168b6030541617603055604051610d308082019082821089831117620025a8579082916200bce1833903906000f0801562002588578a168b60335416176033556040516108848082019082821089831117620025a8579082916200ca11833903906000f093841562002588576200248097620024b8889485938f8f908160ff9b1680916034541617603455620022c062006058565b9d8e83602d541660405190620022d68262004edf565b8152600086820152620022e8620058dd565b6040820152620022f882620060c7565b526200230481620060c7565b5083602f541660405190620023198262004edf565b81526000868201526200232b620056cd565b60408201526200233b82620060eb565b526200234781620060eb565b508360315416604051906200235c8262004edf565b81526000868201526200236e620059ee565b60408201526200237e82620060fc565b526200238a81620060fc565b508360305416604051906200239f8262004edf565b8152600086820152620023b162005aff565b6040820152620023c1826200610d565b52620023cd816200610d565b50836032541660405190620023e28262004edf565b8152600086820152620023f462005c10565b604082015262002404826200611e565b5262002410816200611e565b50836033541660405190620024258262004edf565b81526000868201526200243762005d21565b604082015262002447826200612f565b5262002453816200612f565b5060405192620024638462004edf565b83526000858401526200247562005e32565b604084015262006140565b526200248c8d62006140565b5062002497620071b4565b9a6040519e8f620024a88162004f0f565b5216908d015260408c01620071a7565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a49081860192868410908411176200259457509184939162002529936200971f8639620070b1565b03906000f08015620025885716908181602c541617602c558181602d541617602d558181603154161760315581816030541617603055818160325416176032558181602f541617602f5581816033541617603355603454161760345580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200035957806003193601126200035957604051620025f38162004f48565b6003815260005b6060811062002cfb575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039f57839062002cbc575b620026599150620072af565b6200266487620060c7565b526200267086620060c7565b5060405183815260c8600482015284818381895afa80156200039f57839062002c7d575b620026a09150620072af565b620026ab87620060eb565b52620026b786620060eb565b506040519280845261012c93846004820152858184818a5afa8015620003ed57849062002c3e575b620026eb9150620072af565b620026f688620060fc565b526200270287620060fc565b5060405195620027128762004f48565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008ba57869462002bff575b506200274f89620060c7565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200086157879162002bc2575b50846200278d8b620060eb565b9116905260405181815287600482015288818781875afa9081156200086157879162002b85575b5084620027c18b620060fc565b9116905260405190620027d48262004f48565b600382528b368a8401376040519080825283600483015289828881885afa918215620015ad57889262002b46575b50843b1562002a855760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562002ae257908a9162002b2e575b505060405182815260c860048201528b818a818a5afa90811562002ae2578a9162002af1575b50863b1562002aed5787604051918583521660048201528a898201528981604481838b5af1801562002ae257908a9162002ac6575b5050604051918252600482015289818881885afa908115620015ad57889162002a89575b50843b1562002a855785906040519283521660048201528786820152868160448183885af18015620008615790879162002a6d575b505080826200290b6200291f93620060c7565b52826200291882620060eb565b52620060fc565b52604051926200292f8462004ec3565b4384528487850152813b15620010a85760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003ed57918493918a9362002a4d575b506043546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035c5762002a2c575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b828210620029f757888803868a0152888062000edf8a8a620051a3565b9193975091848062002a1783979899605f198d82030186528b51620053e1565b990192019201889796959492939193620029da565b62002a4690873d8911620003975762000387818362004f80565b50620029b1565b62002a5d91935093919362004efb565b620003f857829188913862002974565b62002a789062004efb565b62000717578538620028f8565b8780fd5b90508981813d831162002abe575b62002aa3818362004f80565b8101031262002a855762002ab79062007253565b38620028c3565b503d62002a97565b62002ad19062004efb565b62002ade5788386200289f565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162002b26575b62002b0b818362004f80565b8101031262002aed5762002b1f9062007253565b386200286a565b503d62002aff565b62002b399062004efb565b62002ade57883862002844565b9091508981813d831162002b7d575b62002b61818362004f80565b8101031262002a855762002b759062007253565b903862002802565b503d62002b55565b90508881813d831162002bba575b62002b9f818362004f80565b81010312620008545762002bb39062007253565b38620027b4565b503d62002b93565b90508881813d831162002bf7575b62002bdc818362004f80565b81010312620008545762002bf09062007253565b3862002780565b503d62002bd0565b9093508781813d831162002c36575b62002c1a818362004f80565b81010312620007175762002c2e9062007253565b923862002743565b503d62002c0e565b508581813d831162002c75575b62002c57818362004f80565b81010312620003c85762002c6f620026eb9162007253565b620026df565b503d62002c4b565b508481813d831162002cb4575b62002c96818362004f80565b81010312620003f85762002cae620026a09162007253565b62002694565b503d62002c8a565b508481813d831162002cf3575b62002cd5818362004f80565b81010312620003f85762002ced620026599162007253565b6200264d565b503d62002cc9565b60209062002d08620071e7565b82828501015201620025fa565b503462000359576040366003190112620003595762002d3362005014565b62002d3d62004ffd565b603e546001600160a01b031690813b15620006e557604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003ed5762003465575b5062002d976004918362007931565b6040805490516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039f5783926200343d575b50602062002dfd91604051809381926390ba52cf60e01b8352846004840152602483019062005354565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f578684918293620033fe575b5060405163aa5106cb60e01b815292938391829162002e4d91906004840162007468565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039f5762002ea1916020918591620033e0575b50604051809381926390ba52cf60e01b8352846004840152602483019062005354565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f35792620033a6575b50036200332f5762002ef762002efe9262002ef0670de0b6b3a76400006004971462007611565b156200758c565b15620075cc565b6040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e05762002f569385918391620032eb575b5060405163aa5106cb60e01b815294859283926004840162007468565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed57849262003309575b5062002f8e60049293620072af565b6040519362002f9d8562004ec3565b845260208401526040805490516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007e05762002ffb9383918391620032eb575060405163aa5106cb60e01b815294859283926004840162007468565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003ed578492620032bd575b506200303090620072af565b604051916200303f8362004ec3565b8252602082015260405190620030558262004f64565b83825260405192620030678462004f2c565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be4008486015260405194620030ab8662004ec3565b855285602086015260405192620030c28462004ec3565b600194858552875b602081106200325657505050505082620030e482620060c7565b52620030f081620060c7565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003675760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035c576200323e575b50506042546001600160a01b031690813b15620010a85791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620032075750505050508383809203925af180156200039f57620031ef575b602082604051620031e481620031d5858201948686526040830190620074ed565b03601f19810183528262004f80565b519020604051908152f35b620031fb839162004efb565b620003675781620031b4565b92959750929550926020806200322987936043198c82030186528951620074ed565b970192019201928795938a9795929362003192565b620032499062004efb565b620003c857833862003141565b602090604051620032678162004ec3565b604051620032758162004f2c565b6200327f62007492565b81526200328b62007492565b848201528b60408201528b888201528b8682015287878201528b8582015281528a8382015282828901015201620030ca565b62003030919250620032e3903d8087833e620032da818362004f80565b8101906200743f565b919062003024565b6200330291503d8085833e620032da818362004f80565b3862002f39565b600492506200332762002f8e913d8088833e620032da818362004f80565b925062002f7f565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d602011620033d7575b81620033c56020938362004f80565b81010312620006e55751903862002ec9565b3d9150620033b6565b620033f791503d8087833e620032da818362004f80565b3862002e7e565b925050506020813d60201162003434575b816200341e6020938362004f80565b81010312620006e55751828662002e4d62002e29565b3d91506200340f565b62002dfd9192506200345c6020913d8087833e620032da818362004f80565b92915062002dd3565b600491936200347862002d979262004efb565b93915062002d88565b503462000359576020806003193601126200036757620034a062005014565b91604051614ffa908181016001600160401b0392828210848311176200161c57908291620272248339039083f09081156200035c5760405161154f808201908282108483111762000c57579082916201f0c68339039084f09485156200039f57604051906200350f8262004edf565b600282528560005b60408110620038f657505060405196620035318862004edf565b6001600160a01b039485168852868801869052604051602980548083526000918252828a019a9291907fcb7c14ce178f56e2e8d86ab33ebc0ae081ba8556a00cd122038841867181caac5b81600784011062003880579a809c620035ee9385936200370e9b9c9d9e54918482821062003861575b82821062003842575b82821062003823575b82821062003804575b828210620037e5575b828210620037c6575b828210620037a9575b501062003793575b509050038262004f80565b6040820152620035fe84620060c7565b526200360a83620060c7565b5085604051916200361b8362004edf565b16815286888201526200362d620056cd565b60408201526200363d83620060eb565b526200364982620060eb565b50604051620036588162004f0f565b62003662620071e7565b815286888201528660408201528660608201528660808201528660a08201528660c08201528660e0820152866101008181840152600c61012083818601526402540be4006101409385858801528d600060405191620036c18362004ec3565b818352820152610160809801528d8c620036da620071b4565b99604051620036e98162004f64565b89815260405190620036fb8262004ec3565b607b8252848201526040519d8e62004f0f565b8d5216908b01528560408b0152670de0b6b3a764000060608b0152600160808b0152600a60a08b0152604660c08b0152606460e08b0152890152870152850152830152604051926114a480850191858310908311176200160857918493916200377d936200971f8639620070b1565b039083f0918215620006f3575060405191168152f35b6001600160e01b03191681528d910138620035e3565b83811b6001600160e01b03191685529093019260010184620035db565b604084901b6001600160e01b03191685529093019260010184620035d2565b606084901b6001600160e01b03191685529093019260010184620035c9565b608084901b6001600160e01b03191685529093019260010184620035c0565b60a084901b6001600160e01b03191685529093019260010184620035b7565b60c084901b6001600160e01b03191685529093019260010184620035ae565b60e084901b6001600160e01b03191685529093019260010184620035a5565b91816008600160079f8f9061010091885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019201939d50506200357c565b6200390062006035565b82828601015201869062003517565b50346200035957806003193601126200035957601354620039308162004fe5565b9062003940604051928362004f80565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062003987576040518062000edf878262005222565b6002826001926040516200399b8162004ec3565b848060a01b038a54168152620039b3858b0162005f43565b838201528152019601920191946200396f565b503462000359576040366003190112620003595762000edf62000f33620039ec62005014565b620039f662004ffd565b9062007931565b5034620003595780600319360112620003595760115462003a1e8162004fe5565b9062003a2e604051928362004f80565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062003a76576040518062000edf8882620052ee565b604051849188549160019280841c90848116801562003b2d575b878310811462001fc8578284528794939291811562003b0f575060011462003ad3575b5062003ac481600196038262004f80565b81520197019201919562003a5e565b8b8952838920955088905b80821062003af7575081018301945062003ac462003ab3565b86548383018601529585019587949091019062003ade565b60ff19168584015250151560051b81018301945062003ac462003ab3565b91607f169162003a90565b5034620003595760031990604036830112620003595762003b5862005014565b60249283359160018060a01b0362003bbf62003b8982602d541662003b7c620071e7565b5083603e54169062007931565b9793919692505084604054169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62005354565b03915afa958615620025885760009662003e12575b506001860180961162003dfd576001890180991162003dfd578662003bfc8460049362007203565b9b60405192838092632472942560e01b82525afa908115620025885760009162003dca575b501562003d935762003c3887603f541694620072af565b93803b15620006e55762003c83946000938e6040519788958694859363018f44b760e41b85526040600486015262003c74604486018c62005354565b928584030190850152620053e1565b03925af190811562002588578a9762003ce693869362003d81575b5062003cbf87602d541662003cb2620071e7565b5088603e54169062007931565b9c935050989050604054169160405195869485938493845287600485015283019062005354565b03915afa908115620025885760009162003d4e575b500362003d165750620004329392916200067291146200758c565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d831162003d79575b62003d67818362004f80565b81010312620003595750513862003cfb565b503d62003d5b565b62003d8c9062004efb565b3862003c9e565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003df5575b62003de3818362004f80565b81010312620003595750513862003c21565b503d62003dd7565b8c634e487b7160e01b60005260116004526000fd5b90958782813d831162003e3f575b62003e2c818362004f80565b8101031262000359575051943862003bd4565b503d62003e20565b5034620003595780600319360112620003595760125462003e688162004fe5565b9062003e78604051928362004f80565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b83831062003ebf576040518062000edf878262005222565b60028260019260405162003ed38162004ec3565b848060a01b038a5416815262003eeb858b0162005f43565b8382015281520196019201919462003ea7565b50346200035957604036600319011262000359576200043262003f2062004ffd565b603e546001600160a01b03169060043562007651565b50346200035957610100366003190112620003595762003f5562005014565b60016024351015620003675762003f6b62004fa2565b62003f7562004fb9565b9162003f806200510a565b91600360c4351015620010a85760e43561ffff81168103620006e5576040519462003fab8662004f64565b600086526040519562003fbe8762004ec3565b607b875260208701526040516139428082018281106001600160401b0382111762001e5957829162020615833903906000f08015620025885760018060a01b03166001600160601b0360a01b602d541617602d5560405161154f8082018281106001600160401b0382111762001e595782916201f0c6833903906000f08015620025885760018060a01b03166001600160601b0360a01b602f541617602f556040516102308082018281106001600160401b0382111762001e5957829162023f57833903906000f08015620025885760018060a01b03166001600160601b0360a01b6031541617603155604051612f0f8082018281106001600160401b0382111762001e595782916201c1b7833903906000f08015620025885760018060a01b03166001600160601b0360a01b603254161760325560405161069b8082018281106001600160401b0382111762001e5957829162024187833903906000f08015620025885760018060a01b03166001600160601b0360a01b6030541617603055604051610d308082018281106001600160401b0382111762001e595782916200bce1833903906000f08015620025885760018060a01b03166001600160601b0360a01b60335416176033556040516108848082018281106001600160401b0382111762001e595782916200ca11833903906000f09485156200258857603480546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620041f162006058565b602d54604051919b91906001600160a01b03166200420f8262004edf565b81526000602082015262004222620058dd565b6040820152620042328c620060c7565b526200423e8b620060c7565b50602f54604051906001600160a01b03166200425a8262004edf565b8152600060208201526200426d620056cd565b60408201526200427d8c620060eb565b52620042898b620060eb565b50603154604051906001600160a01b0316620042a58262004edf565b815260006020820152620042b8620059ee565b6040820152620042c88c620060fc565b52620042d48b620060fc565b50603054604051906001600160a01b0316620042f08262004edf565b8152600060208201526200430362005aff565b6040820152620043138c6200610d565b526200431f8b6200610d565b50603254604051906001600160a01b03166200433b8262004edf565b8152600060208201526200434e62005c10565b60408201526200435e8c6200611e565b526200436a8b6200611e565b50603354604051906001600160a01b0316620043868262004edf565b8152600060208201526200439962005d21565b6040820152620043a98c6200612f565b52620043b58b6200612f565b5060405190620043c58262004edf565b6001600160a01b0316815260006020820152620043e162005e32565b6040820152620043f18b62006140565b52620043fd8a62006140565b5062004408620071b4565b986040519b620044188d62004f0f565b8c526001600160a01b031660208c01526200443960243560408d01620071a7565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200447a60c435620060a6565b60c435610140840152610160830152604051916114a490818401928484106001600160401b0385111762001e59578493620044bb936200971f8639620070b1565b03906000f080156200258857602c80546001600160a01b03929092166001600160a01b03199283168117909155602d8054831682179055603180548316821790556030805483168217905560328054831682179055602f8054831682179055603380548316821790556034805490921617905580f35b50346200035957602036600319011262000359576200454f62005014565b6200455962007211565b9062004569620001e782620072af565b506064620002256040516200457e8162004ec3565b6001815260203681830137620060c7565b50346200035957806003193601126200035957604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620045f55750505062000ec99250038362004f80565b85546001600160a01b0316845260019586019588955093019201620045db565b50346200035957806003193601126200035957604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200467b5750505062000ec99250038362004f80565b85546001600160a01b031684526001958601958895509301920162004661565b503462000359576020806003193601126200036757604080549051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003cc57859262004859575b5060016001600160401b038093160190828211620048435780603f541690866200471233620072af565b92803b156200036757620047459382916040518080978194636b2c1eef60e01b83528d60048401526024830190620053e1565b0391600435905af1928315620007e057879362004826575b5050604054169360046040518096819382525afa928315620003cc578593620047e6575b50811691160362004790575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d83116200481e575b62004801818362004f80565b81010312620010a85762004816829162007377565b929062004781565b503d620047f5565b620048349192935062004efb565b6200071757849086386200475d565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162004890575b62004874818362004f80565b81010312620010a857620048889062007377565b9038620046e8565b503d62004868565b503462000359576020806003193601126200036757600435916001600160401b03918284116200036757366023850112156200036757836004013590620048df8262004fe5565b91620048ef604051938462004f80565b8083528183019560249687600593841b83010191368311620008545788859101915b8383106200499d57505050508384905b86821660038110156200499357855111156200497e5762004957879185681fffffffffffffffe085871b16880101519062007203565b91168681146200496b576001019062004921565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162004911565b5034620003595760403660031901126200035957600435620049cf62004ffd565b803190620049dc620071e7565b50603e546001600160a01b039290620049f89084168362007931565b50505092905083603f541686813b15620003595786916004604051809481936316989f6f60e21b83525af18015620008615762004ab7575b508062004a4f91319462004a43620071e7565b50603e54169062007931565b5050509390508482039182116200086c570362004a7d57620004329262004a769162007203565b1462007611565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562004ac862004a4f929762004efb565b959062004a30565b50346200035957806003193601126200035957604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062004b365750505062000ec99250038362004f80565b85546001600160a01b031684526001958601958895509301920162004b1c565b5034620003595760031960203682011262000367576001600160401b0360043511620003675760c0906004353603011262000359576040519062004b9a8262004ea7565b600435600401356001600160401b038111620003675762004bc390600436918135010162005057565b8252600435602481013560208401526044810135604084015262004bea906064016200511b565b6060830152608460043501356001600160401b038111620003675736602382600435010112156200036757600481813501013562004c288162004fe5565b9262004c38604051948562004f80565b81845260208401923660248460051b836004350101011162000367576024816004350101935b60248460051b83600435010101851062004cac57602062004c9a8888608082015262004c8f60a46004350162005193565b60a082015262006203565b6040516001600160a01b039091168152f35b84356001600160401b038111620003c85760606004358401820136036023190112620003c8576040519062004ce18262004edf565b600435840181016024810135835262004cfd9060440162005042565b60208301526001600160401b03606482866004350101013511620010a857602492602092839262004d3e903690600435890101606481013501870162005146565b6040820152815201950194905062004c5e565b81903462004ea4578160031936011262004ea4578062004d7360a09262004ea7565b62004d7d620071e7565b815282602082015282604082015282606082015260606080820152015260405162004da88162004f48565b600381526060366020830137600a62004dc182620060c7565b52600b62004dcf82620060eb565b52600b62004ddd82620060eb565b526040519062004ded8262004ec3565b607b8252602082015260405162004e048162004f64565b8281526040519162004e168362004ea7565b8252600a60208301526402540be4006040830152604660608301526080820152606460a08201526001600160a01b039062004e519062006203565b166001600160601b0360a01b8181603e541617603e55818160405416176040558181603f541617603f55818160425416176042558181604554161760455581816047541617604755604654161760465580f35b50fd5b60c081019081106001600160401b0382111762001e5957604052565b604081019081106001600160401b0382111762001e5957604052565b606081019081106001600160401b0382111762001e5957604052565b6001600160401b03811162001e5957604052565b61018081019081106001600160401b0382111762001e5957604052565b60e081019081106001600160401b0382111762001e5957604052565b608081019081106001600160401b0382111762001e5957604052565b602081019081106001600160401b0382111762001e5957604052565b90601f801991011681019081106001600160401b0382111762001e5957604052565b606435906001600160401b0382168203620006e557565b608435906001600160401b0382168203620006e557565b35906001600160401b0382168203620006e557565b6001600160401b03811162001e595760051b60200190565b602435906001600160a01b0382168203620006e557565b600435906001600160a01b0382168203620006e557565b604435906001600160a01b0382168203620006e557565b35906001600160a01b0382168203620006e557565b9190604083820312620006e55760405192620050738462004ec3565b836200507f8262004fd0565b815260209182810135906001600160401b038211620006e557019280601f85011215620006e5578335620050b38162004fe5565b94620050c3604051968762004f80565b818652848087019260051b820101928311620006e55784809101915b838310620050ef57505050500152565b8190620050fc8462005042565b8152019101908490620050df565b60a4359060ff82168203620006e557565b359060ff82168203620006e557565b6001600160401b03811162001e5957601f01601f191660200190565b81601f82011215620006e55780359062005160826200512a565b9262005170604051948562004f80565b82845260208383010111620006e557816000926020809301838601378301015290565b359061ffff82168203620006e557565b90815180825260208080930193019160005b828110620051c4575050505090565b83516001600160a01b031685529381019392810192600101620051b5565b90815180825260208080930193019160005b82811062005203575050505090565b83516001600160e01b03191685529381019392810192600101620051f4565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062005258575050505050505090565b90919293949596858062005290600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620051e2565b99019401940192959493919062005246565b60005b838110620052b65750506000910152565b8181015183820152602001620052a5565b90602091620052e281518092818552858086019101620052a2565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310620053235750505050505090565b909192939495848062005343600193603f198682030187528a51620052c7565b980193019301919493929062005312565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062005393575050505090565b83516001600160a01b03168552938101939281019260010162005384565b919594939092620053cd60809460a0855260a085019062005354565b966020840152604083015260608201520152565b9060406020620054039360ff81511684520151918160208201520190620052c7565b90565b81601f82011215620006e557803591620054208362004fe5565b9262005430604051948562004f80565b808452602092838086019260051b820101928311620006e5578301905b8282106200545c575050505090565b81356001600160e01b031981168103620006e55781529083019083016200544d565b9190918083036101a08112620006e5576040516200549c8162004f0f565b80948335906001600160401b038211620006e557620054bd91850162005057565b8152620054cd6020840162005042565b602082015260408301356001811015620006e557604082015260608301356060820152620054fe6080840162004fd0565b60808201526200551160a0840162004fd0565b60a08201526200552460c084016200511b565b60c08201526200553760e0840162005193565b60e08201526101008084013590820152610120918284013560009381850b8203620010a85783015261014080850135906003821015620010a857830152604061015f1990910112620003675760405192620055928462004ec3565b61016092838201359060028210156200035957508452620055b7906101800162005042565b60208401520152565b51908115158203620006e557565b6000805460081c60ff1615620055e8575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200560a57505090565b819250819060405182602082018381526519985a5b195960d21b604084015260408352620056388362004edf565b6200567460246040518093620056636020830197630667f9d760e41b895251809285850190620052a2565b810103600481018452018262004f80565b51925af1503d15620056c4573d906200568d826200512a565b916200569d604051938462004f80565b82523d81602084013e5b6020828051810103126200035957506020620054039101620055c0565b606090620056a7565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b8160078201106200586957846200577297549383831062005848575b83831062005827575b83831062005806575b838310620057e5575b838310620057c4575b838310620057a6575b5082821062005789575b501062005774575b509050038362004f80565b565b6001600160e01b031916815201803862005767565b83811b6001600160e01b031916855290930192600101846200575f565b84901b6001600160e01b031916855290930192600101843862005755565b606085901b6001600160e01b0319168652948101946001909201916200574c565b608085901b6001600160e01b03191686529481019460019092019162005743565b60a085901b6001600160e01b0319168652948101946001909201916200573a565b60c085901b6001600160e01b03191686529481019460019092019162005731565b60e085901b6001600160e01b03191686529481019460019092019162005728565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b831690880152911690850152600190960195889550610100909301926008016200570c565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b8160078201106200597a578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b831690880152911690850152600190960195889550610100909301926008016200591c565b60409081519182602654918282526020908183019060266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35949460005b81600782011062005a8b578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005a2d565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005b9c578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005b3e565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005cad578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005c4f565b60409081519182602a549182825260209081830190602a6000527fbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d29460005b81600782011062005dbe578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005d60565b60409081519182602b549182825260209081830190602b6000527f11c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f9460005b81600782011062005ecf578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005e71565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005fc1578462005772975493838310620058485783831062005827578383106200580657838310620057e557838310620057c457838310620057a65750828210620057895750106200577457509050038362004f80565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005f63565b60405190620060448262004edf565b606060408360008152600060208201520152565b6040519061010082018281106001600160401b0382111762001e5957604052600782528160005b60e081106200608c575050565b6020906200609962006035565b828285010152016200607f565b60031115620060b157565b634e487b7160e01b600052602160045260246000fd5b805115620060d55760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620060d55760400190565b805160021015620060d55760600190565b805160031015620060d55760800190565b805160041015620060d55760a00190565b805160051015620060d55760c00190565b805160061015620060d55760e00190565b805160071015620060d5576101000190565b805160081015620060d5576101200190565b908082519081815260208091019281808460051b8301019501936000915b848310620061a45750505050505090565b9091929394958480620061f2600193601f198682030187528a51858060a01b03815116825283810151620061d881620060a6565b8483015260408091015191606080928201520190620051e2565b980193019301919493929062006193565b906040516117848082018281106001600160401b0382111762001e5957829162016a15833903906000f0801562002588576040516116598082018281106001600160401b0382111762001e595782916201ab5e833903906000f0801562002588576040516129c58082018281106001600160401b0382111762001e5957829162018199833903906000f09081156200258857604051612a728082018281106001600160401b0382111762001e5957829162013fa3833903906000f0801562002588576040516126e78082018281106001600160401b0382111762001e595782916200f4f6833903906000f0801562002588576040516122618082018281106001600160401b0382111762001e595782916200d295833903906000f090811562002588576040516123c68082018281106001600160401b0382111762001e5957829162011bdd833903906000f09283156200258857604051610d308082018281106001600160401b0382111762001e595782916200bce1833903906000f095861562002588576040516108848082018281106001600160401b0382111762001e595782916200ca11833903906000f09586156200258857604051986101408a018a81106001600160401b0382111762001e595760405260098a5260005b610120811062007096575060405190620063f98262004edf565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b80600783011062007021576200649d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620064ad8a620060c7565b52620064b989620060c7565b5060405190620064c98262004edf565b60018060a01b031681526000602082015260405180816020603654928381520160366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8926000905b80600783011062006fac576200656d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200657d8962006140565b52620065898862006140565b5060405190620065998262004edf565b60018060a01b031681526000602082015260405180816020603754928381520160376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b80600783011062006f37576200663d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200664d8862006151565b52620066598762006151565b5060405190620066698262004edf565b60018060a01b031681526000602082015260405180816020603854928381520160386000527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199926000905b80600783011062006ec2576200670d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200671d8762006163565b52620067298662006163565b5060405190620067398262004edf565b60018060a01b031681526000602082015260405180816020603954928381520160396000527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d3926000905b80600783011062006e4d57620067dd94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620067ed86620060eb565b52620067f985620060eb565b5060405190620068098262004edf565b60018060a01b031681526000602082015260405180816020603a549283815201603a6000527fa2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e926000905b80600783011062006dd857620068ad94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b6040820152620068bd85620060fc565b52620068c984620060fc565b5060405190620068d98262004edf565b60018060a01b031681526000602082015260405180816020603b549283815201603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b80600783011062006d63576200697d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b60408201526200698d846200610d565b5262006999836200610d565b5060405190620069a98262004edf565b60018060a01b031681526000602082015260405180816020603d549283815201603d6000527fece66cfdbd22e3f37d348a3d8e19074452862cd65fd4b9a11f0336d1ac6d1dc3926000905b80600783011062006cee5762006a4d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262006a5d836200611e565b5262006a69826200611e565b506040519062006a798262004edf565b60018060a01b031681526000602082015260405180816020603c549283815201603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e926000905b80600783011062006c795762006b1d94549181811062000d3f5781811062000d1f5781811062000cff5781811062000cdf5781811062000cbf5781811062000c9f5781811062000c81571062000c6b5750038262004f80565b604082015262006b2d826200612f565b5262006b39816200612f565b5060405190611b4d808301918383106001600160401b0384111762001e595762006b729162007bd2853960408352604083019062006175565b90602081830391015262006b90845160c0835260c083019062005354565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b84841062006c265750505050505060a061ffff8185969701511691015203906000f080156200258857603e80546001600160a01b0319166001600160a01b0392909216918217905590565b90919293949660208062006c68600193601f198682030188528660408d5180518452878060a01b038682015116868501520151918160408201520190620052c7565b990194019401929493919062006bdb565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006ac4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620069f4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006924565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006854565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006784565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620066b4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620065e4565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006514565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006444565b808b60208093620070a662006035565b9201015201620063df565b90620070c69060408352604083019062006175565b906020818303910152620070e482516101a080845283019062005354565b9160018060a01b0380602083015116602084015260408201516001811015620060b1576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b9084015261014080830151906200717c82620060a6565b84015261016080920151918251926002841015620060b1576101809360209286015201511691015290565b6001821015620060b15752565b60006020604051620071c68162004ec3565b8281520152604051620071d98162004ec3565b600081526000602082015290565b60405190620071f68262004ec3565b6060602083600081520152565b919082018092116200484357565b60405190620072208262004ec3565b600182528160005b602090818110156200724e5760209162007241620071e7565b9082850101520162007228565b505050565b51906001600160a01b0382168203620006e557565b809291039160608312620006e55760406200728382620055c0565b93601f190112620006e55760408051916200729e8362004ec3565b602081015183520151602082015290565b6001600160401b0390620072c2620071e7565b506200735e6040918251906001600160601b03199060601b16602082015260148152620072ef8162004ec3565b6200734f835191620073018362004edf565b600a83526fffffffffffffffffffffffffffffffff6020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a0830190620052c7565b03601f19810184528362004f80565b51906200736b8262004ec3565b60048252602082015290565b51906001600160401b0382168203620006e557565b9190604083820312620006e55760405192620073a88462004ec3565b83620073b48262007377565b815260209182810151906001600160401b038211620006e557019280601f85011215620006e5578351620073e88162004fe5565b94620073f8604051968762004f80565b818652848087019260051b820101928311620006e55784809101915b8383106200742457505050500152565b8190620074318462007253565b815201910190849062007414565b90602082820312620006e55781516001600160401b038111620006e5576200540392016200738c565b906200748260209194939460408452604084019062005354565b6001600160a01b03909416910152565b60405190620074a18262004ec3565b81620074ac620071e7565b81526020620074ba620071e7565b910152565b62005403916020620074db835160408452604084019062005354565b920151906020818403910152620053e1565b906020808351936040845260c06200757962007517875160e06040890152610120880190620074bf565b620075348589015191603f1992838a83030160608b0152620074bf565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152620052c7565b9501516101008501520151151591015290565b156200759457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b15620075d457565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b156200761957565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e557829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af18015620079275790889493929162007910575b50620076ae85918462007931565b9b93969298919a90508554168551938480926394074b0360e01b82525afa91821562007906578392620078e6575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b908184528884806200771c60209b8c8095840152602483019062005354565b0381865af4938415620078dc579086918295620078a0575b50875163aa5106cb60e01b81529495859182916200775691908d840162007468565b0381855af49283156200789657916200778f93918893879362007876575b5087518095819482938352868d840152602483019062005354565b03915af49283156200786b579262007836575b5003620077c3575050509162002ef062002ef7926200577295941462007611565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d831162007863575b62007851818362004f80565b81010312620006e557519038620077a2565b503d62007845565b8451903d90823e3d90fd5b6200788e9193503d8089833e620032da818362004f80565b913862007774565b86513d87823e3d90fd5b89809296508193503d8311620078d4575b620078bd818362004f80565b81010312620006e557519285906200775662007734565b503d620078b1565b87513d88823e3d90fd5b620078fe9192503d8085833e620032da818362004f80565b9038620076dc565b84513d85823e3d90fd5b9462007920620076ae9662004efb565b94620076a0565b83513d87823e3d90fd5b906200793c620071e7565b50603f80546001600160a01b039283166001600160a01b03199182168117909255604080549091168217815580516394074b0360e01b815290936000928390839060049082905afa91821562007bc75792809291620079d094829362007ba7575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162007468565b0381845af492831562007b7a57829362007b84575b5062007a16929385541693855180926390ba52cf60e01b825281806020978895866004840152602483019062005354565b03915af490811562007b7a57908291829162007b43575b50602486518096819363017187cd60e11b835260048301525afa92831562007b3757819362007a84575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e62007a99818362004f80565b8101918382840312620003595781516001600160401b0392838211620003f857019060c082850312620003595785519462007ad48662004ea7565b825186528083015190860152858201518686015262007af66060830162007377565b606086015262007b096080830162007377565b608086015260a082015192831162000359575062007b299291016200738c565b60a082015238808062007a57565b508351903d90823e3d90fd5b809250848092503d831162007b72575b62007b5f818362004f80565b8101031262000367578190513862007a2d565b503d62007b53565b85513d84823e3d90fd5b62007a16935062007ba0903d8085833e620032da818362004f80565b92620079e5565b62007bbf9193503d8084833e620032da818362004f80565b91386200799d565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$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$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033a264697066735822122053420378ab697eb83eda176a91226251d8288d6144ae7628d920c96155026d5664736f6c63430008130033","sourceMap":"3506:1513:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;:::i;:::-;28446:19:91;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;:::-;28475:48;3506:1513:92;28475:48:91;;;;:::i;:::-;;;:::i;:::-;;3506:1513:92;;;;;:::i;:::-;28463:1:91;3506:1513:92;;1220:14:3;3506:1513:92;1220:14:3;;;3693:3:91;28586:19;3506:1513:92;;28586:19:91;;:::i;:::-;3506:1513:92;;28616:21:91;;;;;;3506:1513:92;;-1:-1:-1;;;28616:21:91;;-1:-1:-1;;;;;3506:1513:92;;;;28616:21:91;;3506:1513:92;;;1220:14:3;;3506:1513:92;28616:21:91;3506:1513:92;1220:14:3;3506:1513:92;28616:21:91;;;;;;;;;;3506:1513:92;;;;;;;;:::i;:::-;28704:12:91;3506:1513:92;;28680:61:91;1220:14:3;28680:61:91;;3506:1513:92;28817:38:91;;;;;3506:1513:92;;-1:-1:-1;;;28817:38:91;;-1:-1:-1;;;3506:1513:92;28817:38:91;;3506:1513:92;28817:38:91;3506:1513:92;;;28817:38:91;;;;;;;;;;;;;;;3506:1513:92;-1:-1:-1;28865:22:91;540:42:1;3506:1513:92;;-1:-1:-1;;;28865:53:91;;540:42:1;;3506:1513:92;28865:53:91;;3506:1513:92;540:42:1;;;;;;;;3506:1513:92;;;28865:53:91;;3506:1513:92;;540:42:1;;3506:1513:92;;;;;28865:53:91;;;;;;;;3506:1513:92;28928:14:91;;;;;;3506:1513:92;;;;;;;;;;;;;28928:14:91;;;;;;;;;;3506:1513:92;;;28928:14:91;;;;;:::i;:::-;3506:1513:92;;28928:14:91;3506:1513:92;;;;;;28928:14:91;3506:1513:92;;;;;;;;;28928:14:91;3506:1513:92;;;28865:53:91;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3506:1513:92;;;;;;;;;28817:38:91;;;;;;;;:::i;:::-;3506:1513:92;;28817:38:91;;;;;;3506:1513:92;;;;28817:38:91;3506:1513:92;;;;;;;;;28616:21:91;;;;;;;:::i;:::-;;;;;;3506:1513:92;;;;;;;;;28616:21:91;3506:1513:92;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;;:::i;:::-;;;;;;;;;29464:9:91;3693:3;35553:42;3506:1513:92;;;;:::i;:::-;-1:-1:-1;35580:14:91;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;;;;35553:42:91;:::i;:::-;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;29522:45:91;;;3506:1513:92;29522:45:91;;3506:1513:92;29522:45:91;3506:1513:92;;;;;;;;:::i;:::-;29522:45:91;;;;;;;;;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;29522:45:91;29659:29;3506:1513:92;;29659:29:91;;;:::i;:::-;3506:1513:92;;;;;;;;;;29707:22:91;;;;;;;;;;;;;3506:1513:92;29707:26:91;;3506:1513:92;;29769:25:91;3506:1513:92;;-1:-1:-1;29810:9:91;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;29854:36:91;;;:::i;:::-;29810:81;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;29810:81:91;;3506:1513:92;;29810:81:91;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81:91;;;;;;;;;;29765:281;;;29522:45;29765:281;;;29464:9;3693:3;3506:1513:92;;35553:42:91;;-1:-1:-1;;;;;3506:1513:92;;;:::i;:::-;-1:-1:-1;35580:14:91;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;35553:42:91;:::i;:::-;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;30148:45:91;;;3506:1513:92;30148:45:91;;3506:1513:92;;;;;;:::i;:::-;30148:45:91;;;;;;;;;;;;29765:281;3506:1513:92;;;30148:74:91;3506:1513:92;;30317:66:91;3506:1513:92;;30256:51:91;3506:1513:92;;30264:22:91;30256:51;:::i;:::-;30325:32;30317:66;:::i;3506:1513:92:-;;;-1:-1:-1;;;3506:1513:92;;29522:45:91;3506:1513:92;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;30148:45:91;;;;29522;30148;;29522;30148;;;;;;29522;30148;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;3506:1513:92;30148:45:91;;3506:1513:92;;;;30148:45:91;;;-1:-1:-1;30148:45:91;;;3506:1513:92;;;;;;;;;;29810:81:91;;;;;:::i;:::-;3506:1513:92;;29810:81:91;;;;3506:1513:92;;;29765:281:91;29912:24;;;;;;;;3506:1513:92;29912:24:91;29908:138;;29765:281;;;29522:45;29765:281;;;;;;;29908:138;29952:9;3506:1513:92;;;;-1:-1:-1;;;;;3506:1513:92;;29986:36:91;;;:::i;:::-;29952:83;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;29952:83:91;;3506:1513:92;;29952:83:91;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;29952:83:91;;;;;;;;;29522:45;29952:83;;;;;;29908:138;;;;;;;;;;29952:83;;;;:::i;:::-;;;;;3506:1513:92;;;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;29522:45:91;3506:1513:92;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;29707:22:91;;;29522:45;29707:22;;29522:45;29707:22;;;;;;29522:45;29707:22;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;29707:22:91;;;3506:1513:92;;;;29707:22:91;;;-1:-1:-1;29707:22:91;;;3506:1513:92;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;29522:45:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;29522:45:91;;;;;;;-1:-1:-1;29522:45:91;;;3506:1513:92;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;:::i;:::-;15025:1:91;3506:1513:92;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;15068:178:91;;3506:1513:92;;;;;:::i;:::-;;15068:178:91;;3506:1513:92;15038:218:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;15297:180:91;;3506:1513:92;;;;;:::i;:::-;;15297:180:91;;3506:1513:92;15267:220:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;15528:178:91;;3506:1513:92;;;;;:::i;:::-;;15528:178:91;;3506:1513:92;15498:218:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;15757:182:91;3506:1513:92;15757:182:91;;3506:1513:92;;;;;;15905:19:91;3506:1513:92;;;;;;15905:19:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15757:182:91;;3506:1513:92;15727:222:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;15990:190:91;3506:1513:92;15990:190:91;;3506:1513:92;;;;;;16142:23:91;3506:1513:92;;;;;;16142:23:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15990:190:91;;3506:1513:92;15960:230:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;16213:42:91;;;;;;;;;-1:-1:-1;;;;;16213:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;16201:54;3506:1513:92;;-1:-1:-1;;;;;;3506:1513:92;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;16213:42:91;-1:-1:-1;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;3506:1513:92;;;;;;;;;2130:18:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;35553:42:91;3506:1513:92;;:::i;:::-;;;:::i;35553:42:91:-;3506:1513:92;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;:::i;:::-;;;30474:26:91;;;;;3506:1513:92;;-1:-1:-1;;;30474:26:91;;-1:-1:-1;;;;;3506:1513:92;;;;30474:26:91;;3506:1513:92;;;;30474:26:91;3506:1513:92;;;30474:26:91;;;;;;;;;;;;;3506:1513:92;30510:56:91;;;;;;;3506:1513:92;;;;;;;;;;;;;;;30510:56:91;;3506:1513:92;30510:56:91;;3506:1513:92;;;;;;30510:56:91;;;;;;;;;;;3506:1513:92;3693:3:91;;30576:9;3693:3;3506:1513:92;30576:56:91;;;;;3506:1513:92;;;3053:7:91;3506:1513:92;;;;;;;;;;;;30576:56:91;;3506:1513:92;;30576:56:91;;3506:1513:92;;;;;;:::i;:::-;30576:56:91;;;;;;;;;;3506:1513:92;;30576:56:91;;;;:::i;:::-;3506:1513:92;;30576:56:91;3506:1513:92;30576:56:91;3506:1513:92;;;30510:56:91;;;;:::i;:::-;3506:1513:92;;30510:56:91;;;;;3506:1513:92;;;30474:26:91;;;;:::i;:::-;3506:1513:92;;30474:26:91;;;;;3506:1513:92;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;:::i;:::-;;;16453:29:91;;;;;;;;-1:-1:-1;;;;;16453:29:91;;;;;;;;;;;;;;;;;;;;3506:1513:92;;16524:28:91;;;;;;;;-1:-1:-1;;;;;16524:28:91;;;;;;;;;;;;;;;;;;;3506:1513:92;;16593:27:91;;;;;;;;-1:-1:-1;;;;;16593:27:91;;;;;;;;;;;;;;;;;;;;3506:1513:92;;16664:28:91;;;;;;;;-1:-1:-1;;;;;16664:28:91;;;;;;;;;;;;;;;;;;;3506:1513:92;;16747:35:91;;;;;;;;-1:-1:-1;;;;;16747:35:91;;;;;;;;;;;;;;;;;;;;3506:1513:92;;16820:23:91;;;;;;;;-1:-1:-1;;;;;16820:23:91;;;;;;;;;;;;;;;;;;;;3506:1513:92;;16878:21:91;;;;;;;;-1:-1:-1;;;;;16878:21:91;;;;;;;;;;;;;;;;;;;;16950:26;;:::i;:::-;3506:1513:92;;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;17017:189:91;;3506:1513:92;;;;;:::i;:::-;;17017:189:91;;3506:1513:92;16987:229:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;17257:187:91;;3506:1513:92;;;;;:::i;:::-;;17257:187:91;;3506:1513:92;17227:227:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;17495:187:91;;3506:1513:92;;;;;:::i;:::-;;17495:187:91;;3506:1513:92;17465:227:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;17733:191:91;;3506:1513:92;;;;;:::i;:::-;;17733:191:91;;3506:1513:92;17703:231:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;17975:199:91;;3506:1513:92;;;;;:::i;:::-;;17975:199:91;;3506:1513:92;17945:239:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;18225:187:91;;3506:1513:92;;;;;:::i;:::-;;18225:187:91;;3506:1513:92;18195:227:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;18463:187:91;3506:1513:92;18463:187:91;;3506:1513:92;;;;;;18618:17:91;3506:1513:92;;;;;;18618:17:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18463:187:91;;3506:1513:92;18433:227:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;18700:42:91;;;;;;;;;-1:-1:-1;;;;;18700:42:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;3506:1513:92;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16878:21:91;3506:1513:92;;;;;;;;;16878:21:91;-1:-1:-1;;;3506:1513:92;;;;;;;;16820:23:91;-1:-1:-1;;;3506:1513:92;;;;;;;;16747:35:91;-1:-1:-1;;;3506:1513:92;;;;;;;;16664:28:91;-1:-1:-1;;;3506:1513:92;;;;;;;;16593:27:91;-1:-1:-1;;;3506:1513:92;;;;;;;;16453:29:91;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;24348:21:91;;;;;-1:-1:-1;;;;;24348:21:91;;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;;24413:23:91;;;;;-1:-1:-1;;;;;24413:23:91;;;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;;24483:25:91;;;;;-1:-1:-1;;;;;24483:25:91;;;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;;24553:23:91;;;;;-1:-1:-1;;;;;24553:23:91;;;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;24617:200:91;3506:1513:92;24617:200:91;;3506:1513:92;;;;;;24779:23:91;3506:1513:92;;;;;;24779:23:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24617:200:91;;3506:1513:92;24587:240:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;24867:198:91;3506:1513:92;24867:198:91;;3506:1513:92;;;;;;25027:23:91;3506:1513:92;;;;;;25027:23:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24867:198:91;;3506:1513:92;24837:238:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;25115:206:91;3506:1513:92;25115:206:91;;3506:1513:92;;;;;;25278:28:91;3506:1513:92;;;;;;25278:28:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25115:206:91;;3506:1513:92;25085:246:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;25371:212:91;3506:1513:92;25371:212:91;;3506:1513:92;;;;;;25534:34:91;3506:1513:92;;;;;;25534:34:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25371:212:91;;3506:1513:92;25341:252:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;25646:45:91;;;;;;;;;;-1:-1:-1;;;;;25646:45:91;;;;;;3506:1513:92;25646:45:91;;;3506:1513:92;25646:45:91;;;;3506:1513:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;25646:45:91;;;;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;25706:49:91;;3506:1513:92;25706:49:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24348:21:91;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;3506:1513:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;-1:-1:-1;3506:1513:92;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;-1:-1:-1;3506:1513:92;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;;;;:::i;:::-;;1671:64:2;;3506:1513:92;;;;;;;6628:51:16;;3506:1513:92;;6628:51:16;;;;;;;;3506:1513:92;6628:51:16;;;3506:1513:92;;;;;;:::i;:::-;;;;;;;6628:51:16;234:9:40;;6628:51:16;;;;;;:::i;:::-;3506:1513:92;392:159:16;131:42;392:159;;;3506:1513:92;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;3506:1513:92;19669:43:91;;;;3506:1513:92;;;19735:29:91;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;;;;;;;3506:1513:92;19735:29:91;;;;;;3506:1513:92;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;19723:41:91;3506:1513:92;;;19723:41:91;3506:1513:92;;;19785:28:91;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;19785:28:91;;;;;3506:1513:92;;;19774:39:91;3506:1513:92;;;19774:39:91;3506:1513:92;;;19834:27:91;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;19834:27:91;;;;;3506:1513:92;;;19823:38:91;3506:1513:92;;;19823:38:91;3506:1513:92;;;19888:35:91;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;19888:35:91;;;;;3506:1513:92;;;19871:52:91;3506:1513:92;;;19871:52:91;3506:1513:92;;;19946:28:91;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;19946:28:91;;;;;3506:1513:92;;;19933:41:91;3506:1513:92;;;19933:41:91;3506:1513:92;;;19995:21:91;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;19995:21:91;;;;;3506:1513:92;;;19984:32:91;3506:1513:92;;;19984:32:91;3506:1513:92;;;20037:23:91;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;20037:23:91;;;;;;21606:229;3506:1513:92;21918:657:91;3506:1513:92;;;;;;;;;;;;;20026:34:91;3506:1513:92;;;20026:34:91;3506:1513:92;20111:26:91;;:::i;:::-;3693:3;;;19723:41;3693:3;3506:1513:92;;;;;;;:::i;:::-;;;;20178:191:91;;;3506:1513:92;;;:::i;:::-;;20178:191:91;;3506:1513:92;20148:231:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19774:39;3693:3;3506:1513:92;;;;;;;:::i;:::-;;;;20420:189:91;;;3506:1513:92;;;:::i;:::-;;20420:189:91;;3506:1513:92;20390:229:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19823:38;3693:3;3506:1513:92;;;;;;;:::i;:::-;;;;20660:189:91;;;3506:1513:92;;;:::i;:::-;;20660:189:91;;3506:1513:92;20630:229:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19933:41;3693:3;3506:1513:92;;;;;;;:::i;:::-;;;;20900:193:91;;;3506:1513:92;;;:::i;:::-;;20900:193:91;;3506:1513:92;20870:233:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19871:52;3693:3;3506:1513:92;;;;;;;:::i;:::-;;;;21144:201:91;;;3506:1513:92;;;:::i;:::-;;21144:201:91;;3506:1513:92;21114:241:91;;;:::i;:::-;;;;;:::i;:::-;;3693:3;19984:32;3693:3;3506:1513:92;;;;;;;:::i;:::-;;;;21396:189:91;;;3506:1513:92;;;:::i;:::-;;21396:189:91;;3506:1513:92;21366:229:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;21636:189:91;;;3506:1513:92;;;:::i;:::-;;21636:189:91;;3506:1513:92;21606:229:91;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;3506:1513:92;;;;;;;;:::i;:::-;;;21918:657:91;;;3506:1513:92;;21918:657:91;;;:::i;:::-;3506:1513:92;;;21918:657:91;;3506:1513:92;;21918:657:91;;;3693:3;3506:1513:92;;21918:657:91;;3693:3;3506:1513:92;;21918:657:91;;3251:7;3506:1513:92;;21918:657:91;;3251:7;;21918:657;;;3506:1513:92;22395:2:91;21918:657;;;3251:7;3506:1513:92;21918:657:91;;;3251:7;21918:657;;;3506:1513:92;;;21858:727:91;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;21858:727:91;;;;;3506:1513:92;;;;21846:739:91;3506:1513:92;;;21846:739:91;3506:1513:92;;;19723:41:91;3506:1513:92;;;19723:41:91;3506:1513:92;;;19823:38:91;3506:1513:92;;;19823:38:91;3506:1513:92;;;19933:41:91;3506:1513:92;;;19933:41:91;3506:1513:92;;;19871:52:91;3506:1513:92;;;19871:52:91;3506:1513:92;;;19774:39:91;3506:1513:92;;;19774:39:91;3506:1513:92;;;19984:32:91;3506:1513:92;;;19984:32:91;3506:1513:92;20026:34:91;3506:1513:92;;;20026:34:91;3506:1513:92;;;21858:727:91;3506:1513:92;;;;;;;;;21858:727:91;-1:-1:-1;;;3506:1513:92;;;;;;;;20037:23:91;3506:1513:92;;;;;;;;;;;19735:29:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;26191:12:91;;;;26199:3;26191:12;;3506:1513:92;26191:12:91;;3506:1513:92;;1220:14:3;;3506:1513:92;26191:12:91;;;;;;;;;;;;;;;;3506:1513:92;26169:35:91;;;;:::i;:::-;26153:51;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;26252:12:91;;;26260:3;3506:1513:92;26252:12:91;;3506:1513:92;26252:12:91;;;;;;;;;;;;;;;3506:1513:92;26230:35:91;;;;:::i;:::-;26214:51;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;26313:12:91;;;;26321:3;26313:12;;3506:1513:92;26313:12:91;;3506:1513:92;26313:12:91;;;;;;;;;;;;;;;3506:1513:92;26291:35:91;;;;:::i;:::-;26275:51;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;3693:3:91;;;;3506:1513:92;;26390:12:91;;;;;3506:1513:92;26390:12:91;;3506:1513:92;26390:12:91;;;;;;;;;;;;;;;;3506:1513:92;26375:27:91;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;;;;26427:12:91;;;26260:3;3506:1513:92;26427:12:91;;3506:1513:92;26427:12:91;3506:1513:92;26427:12:91;3506:1513:92;26427:12:91;;;;;;;;;;;;3506:1513:92;26412:27:91;;;;;:::i;:::-;3506:1513:92;;;;;;26464:12:91;;;;3506:1513:92;26464:12:91;;3506:1513:92;26464:12:91;;;;;;;;;;;;;;;;3506:1513:92;26449:27:91;;;;;:::i;:::-;3506:1513:92;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;3693:3:91;3506:1513:92;;26549:12:91;;;;;3506:1513:92;26549:12:91;;3506:1513:92;26549:12:91;;;;;;;;;;;;;;;;3506:1513:92;26541:24:91;;;;;;3506:1513:92;;-1:-1:-1;;;26541:24:91;;;3506:1513:92;;;;26541:24:91;;3506:1513:92;;1220:14:3;;;3506:1513:92;;;;;26541:24:91;3506:1513:92;1220:14:3;3506:1513:92;26541:24:91;;;;;;;;;;;;;3506:1513:92;;;;;26583:12:91;;;26260:3;3506:1513:92;26583:12:91;;3506:1513:92;26583:12:91;;;;;;;;;;;;;;;;3506:1513:92;26575:24:91;;;;;;3506:1513:92;;;26575:24:91;;;;3506:1513:92;;26575:24:91;;3506:1513:92;1220:14:3;;;;3506:1513:92;26575:24:91;;1220:14:3;26575:24:91;;;;;;;;;;;;;;3506:1513:92;;;;;26617:12:91;;;3506:1513:92;26617:12:91;;3506:1513:92;26617:12:91;;;;;;;;;;;;;;;;3506:1513:92;26609:24:91;;;;;;3506:1513:92;;;;26609:24:91;;;3506:1513:92;;26609:24:91;;3506:1513:92;1220:14:3;;;;3506:1513:92;26609:24:91;;1220:14:3;26609:24:91;;;;;;;;;;;;;;3506:1513:92;26644:16:91;;;;;26696;26644;;:::i;:::-;3506:1513:92;26670:16:91;;;;:::i;:::-;3506:1513:92;26696:16:91;:::i;:::-;3506:1513:92;;;;;;;:::i;:::-;26780:12:91;3506:1513:92;;26756:61:91;;;;3506:1513:92;26828:33:91;;;;;3506:1513:92;;-1:-1:-1;;;26828:33:91;;-1:-1:-1;;;3506:1513:92;26828:33:91;;3506:1513:92;;;;;;;;;;26828:33:91;;;;;;;;;;;;;;3506:1513:92;-1:-1:-1;26871:22:91;540:42:1;3506:1513:92;;-1:-1:-1;;;26871:53:91;;540:42:1;;3506:1513:92;26871:53:91;;3506:1513:92;540:42:1;;;;;;;;3506:1513:92;;;;;540:42:1;;3506:1513:92;;;;26871:53:91;;;;;;;;3506:1513:92;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;26871:53:91;;;;;;;;;;;;;:::i;:::-;;;;26828:33;;;;;;;;;:::i;:::-;3506:1513:92;;26828:33:91;;;;;;;26609:24;;;;:::i;:::-;3506:1513:92;;26609:24:91;;;;;3506:1513:92;;;26617:12:91;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26617:12:91;;;;;;;;26575:24;;;;:::i;:::-;3506:1513:92;;26575:24:91;;;;3506:1513:92;;;;26575:24:91;3506:1513:92;;;;;;;;;26575:24:91;3506:1513:92;;;26583:12:91;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26583:12:91;;;;;;;;26541:24;;;;:::i;:::-;3506:1513:92;;26541:24:91;;;;26549:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26549:12:91;;;;;;;;;26464;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26464:12:91;;;;;;;;26427;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26427:12:91;;;;;;;;26390;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;26390:12:91;;;;;;;;;26313;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26291:35:91;1220:14:3;;:::i;:::-;26313:12:91;;;;;;;26252;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26230:35:91;1220:14:3;;:::i;:::-;26252:12:91;;;;;;;26191;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;26169:35:91;1220:14:3;;:::i;:::-;26191:12:91;;;;;;;3506:1513:92;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;:::i;:::-;;;:::i;:::-;34850:14:91;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;34081:38:91;;;;;3506:1513:92;;-1:-1:-1;;;34081:38:91;;3506:1513:92;;34081:38:91;;3506:1513:92;;;;;;;;;;;34081:38:91;;;;;;;;3506:1513:92;34212:64:91;;3506:1513:92;34212:64:91;;;:::i;:::-;3506:1513:92;;;;;-1:-1:-1;;;34319:25:91;;3506:1513:92;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;34319:25:91;;;;;;;;;;;3506:1513:92;;;;;;;;;;;;;;34376:11:91;;;3506:1513:92;34376:11:91;;3506:1513:92;;;;;;:::i;:::-;34376:11:91;:9;;:11;;;;;;;;;;;;;;3506:1513:92;-1:-1:-1;3506:1513:92;;-1:-1:-1;;;34391:43:91;;3506:1513:92;;;;;;34391:43:91;;3506:1513:92;;34391:43:91;;;:::i;:::-;;34376:9;;34391:43;;;;;;;3506:1513:92;34391:43:91;3506:1513:92;34391:43:91;;;;;3506:1513:92;;;;;;;;;;;34391:52:91;;;3506:1513:92;34391:52:91;;3506:1513:92;;;;;;:::i;:::-;34391:52:91;34376:9;;34391:52;;;;;;;;;;3506:1513:92;34376:67:91;;3506:1513:92;;34604:46:91;34660:49;34554:19;34546:48;3506:1513:92;;34554:19:91;;34546:48;:::i;:::-;34612:17;34604:46;:::i;:::-;34668:15;34660:49;:::i;:::-;3506:1513:92;;;;;-1:-1:-1;;;27226:25:91;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;27226:25:91;;;;;;;:48;:25;;;;;;;3506:1513:92;-1:-1:-1;3506:1513:92;;-1:-1:-1;;;27226:48:91;;3506:1513:92;;;;;;27226:48:91;;;:::i;:::-;;34376:9;;27226:48;;;;;;;;;;;3506:1513:92;27308:29:91;;3506:1513:92;27308:29:91;;;:::i;:::-;3506:1513:92;;;;;;:::i;:::-;;;;27183:173:91;;3506:1513:92;;;;;;-1:-1:-1;;;27421:25:91;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;27421:25:91;;;;;;;:45;:25;;;;;;;-1:-1:-1;3506:1513:92;;-1:-1:-1;;;27421:45:91;;3506:1513:92;;;;;;27421:45:91;;;:::i;:::-;;34376:9;;27421:45;;;;;;;;;;;3506:1513:92;27500:26:91;;;;:::i;:::-;3506:1513:92;;;;;;:::i;:::-;;;;27378:167:91;;3506:1513:92;;;;;;;:::i;:::-;1671:64:2;;;3506:1513:92;;;;;;:::i;:::-;;;;27147:608:91;;3506:1513:92;;;27147:608:91;;3506:1513:92;27147:608:91;;;;;3693:3;27147:608;;;;;;234:9:40;3506:1513:92;27147:608:91;;;;3506:1513:92;27147:608:91;;3251:7;27147:608;;;3506:1513:92;;;;;;;:::i;:::-;;;27115:679:91;3506:1513:92;27115:679:91;;234:9:40;3506:1513:92;;;;;;:::i;:::-;;;;;;234:9:40;;3506:1513:92;234:9:40;;;;27856:18:91;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;28104:33:91;;;;;3506:1513:92;;-1:-1:-1;;;28104:33:91;;-1:-1:-1;;;3506:1513:92;28104:33:91;;3506:1513:92;;;;;;;;;;;;28104:33:91;;;;;;;;234:9:40;-1:-1:-1;;28147:20:91;234:9:40;-1:-1:-1;;;;;3506:1513:92;;28147:45:91;;;;;3506:1513:92;;;;;;;;;;;28147:45:91;;3506:1513:92;234:9:40;;28147:45:91;3506:1513:92;;28147:45:91;;234:9:40;3506:1513:92;;;;;;;;234:9:40;3506:1513:92;;234:9:40;;;;;;;;;;;;;;;;;28147:45:91;;;;;;;;;;;;;;;;;;;234:9:40;3506:1513:92;;;;2508:20:60;;3506:1513:92;2508:20:60;;;3506:1513:92;;;;;;;;;:::i;:::-;2508:20:60;234:9:40;;2508:20:60;;;;;;:::i;:::-;3506:1513:92;2498:31:60;;3506:1513:92;;;;;;28147:45:91;;;;;:::i;:::-;3506:1513:92;;28147:45:91;;;234:9:40;;;;;;;;;3506:1513:92;234:9:40;;;;;;;;;;;;;;;:::i;:::-;3506:1513:92;;234:9:40;;;;;;;;;;;;;;;28104:33:91;;;;:::i;:::-;3506:1513:92;;28104:33:91;;;;234:9:40;3506:1513:92;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;3506:1513:92;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27421:45:91;27500:26;27421:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;27226:48;3506:1513:92;27226:48:91;;;27308:29;27226:48;;;;;;;;;;:::i;:::-;;;;;3506:1513:92;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;34391:52:91;;;;3506:1513:92;34391:52:91;;3506:1513:92;34391:52:91;;;;;;3506:1513:92;34391:52:91;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;34391:52:91;;;;;;;-1:-1:-1;34391:52:91;;:43;;;;;;;;;;;;;:::i;:::-;;;;34376:11;;;;;3506:1513:92;34376:11:91;;3506:1513:92;34376:11:91;;;;;;3506:1513:92;34376:11:91;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;;34391:43:91;34376:11;;;;;-1:-1:-1;34376:11:91;;34319:25;3506:1513:92;34319:25:91;;;;3506:1513:92;34319:25:91;;;;;;;;;;:::i;:::-;;;;;;34081:38;3506:1513:92;34081:38:91;;;34212:64;34081:38;;:::i;:::-;;;;;;3506:1513:92;;;;;;;;;;;;;;;;:::i;:::-;;;;23178:21:91;;;;;-1:-1:-1;;;;;23178:21:91;;;;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;;23241:28:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3506:1513:92;;;;;;:::i;:::-;23344:1:91;3506:1513:92;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;;23387:201:91;;;3506:1513:92;;;;;23549:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23387:201:91;;3506:1513:92;23357:241:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;;:::i;:::-;;;;23639:187:91;;;;3506:1513:92;;;:::i;:::-;;23639:187:91;;3506:1513:92;23609:227:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3651:2:91;3506:1513:92;;;;;;3251:7:91;3506:1513:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;7896:27:91;;;;:::i;:::-;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;8047:58;;;3506:1513:92;;;;;;:::i;:::-;;;;7986:700:91;;;3506:1513:92;7986:700:91;3506:1513:92;7986:700:91;;3251:7;3053;3506:1513:92;7986:700:91;;3506:1513:92;;;7986:700:91;;3693:3;3110:2;3506:1513:92;7986:700:91;;3693:3;3001:2;3506:1513:92;7986:700:91;;3251:7;3606:3;3506:1513:92;7986:700:91;;3251:7;7986:700;;3506:1513:92;7986:700:91;;3251:7;7986:700;;3251:7;7986:700;;3506:1513:92;;;23973:42:91;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;3506:1513:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;3506:1513:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;-1:-1:-1;3506:1513:92;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;35553:42:91;3693:3;29464:9;3693:3;3506:1513:92;;;:::i;:::-;;;35580:14:91;3506:1513:92;;35553:42:91;;:::i;:::-;3506:1513:92;;;;;;;;;;;;;;;;;;29522:45:91;;;;;;;;;;;;;;3506:1513:92;29522:45:91;;3506:1513:92;;;;;:::i;:::-;29522:45:91;;;;;;;;;3506:1513:92;29522:45:91;;;3506:1513:92;;;;;;;;;;;;;;;;;;29659:29:91;;;3506:1513:92;29659:29:91;;:::i;:::-;3506:1513:92;;;;;;;;;;29707:22:91;;;;;;;;;3506:1513:92;29707:22:91;;;3506:1513:92;29707:26:91;;3506:1513:92;;29854:36:91;3506:1513:92;29810:9:91;3506:1513:92;;29854:36:91;;:::i;:::-;29810:81;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;29810:81:91;;3506:1513:92;;29810:81:91;;3506:1513:92;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;29810:81:91;;;;;;;;;;;3506:1513:92;29810:81:91;;;;;3506:1513:92;3693:3:91;35553:42;3693:3;29464:9;3693:3;3506:1513:92;;;:::i;:::-;;;35580:14:91;3506:1513:92;;35553:42:91;;:::i;:::-;3506:1513:92;;;;;;;;;;;;;30148:45:91;;;;;;;;;;3506:1513:92;30148:45:91;;3506:1513:92;;;;;:::i;:::-;30148:45:91;;;;;;;;;3506:1513:92;30148:45:91;;;3506:1513:92;30148:74:91;;3506:1513:92;;30264:22:91;30317:66;30264:22;;;30256:51;30264:22;;30256:51;:::i;3506:1513:92:-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;30148:45:91;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;30148:45:91;;;;;;;;29810:81;;;;:::i;:::-;;;;3506:1513:92;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;29707:22:91;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;29707:22:91;;;;;;;;3506:1513:92;;;;;;;;;;;;29522:45:91;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;29522:45:91;;;;;;;;;3506:1513:92;;;;;;;;;;;;;2592:26:8;3506:1513:92;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;34850:14:91;3506:1513:92;;:::i;:::-;34850:14:91;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;;;34850:14:91;:::i;3506:1513:92:-;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3693:3:91;;;3506:1513:92;19669:43:91;;3506:1513:92;;;19735:29:91;;;;;;;-1:-1:-1;;;;;19735:29:91;;;;;;;;;;;;3506:1513:92;19735:29:91;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;19723:41:91;3506:1513:92;;;19723:41:91;3506:1513:92;;;19785:28:91;;;;;;;-1:-1:-1;;;;;19785:28:91;;;;;;;;;;;;3506:1513:92;19785:28:91;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;19774:39:91;3506:1513:92;;;19774:39:91;3506:1513:92;;;19834:27:91;;;;;;;-1:-1:-1;;;;;19834:27:91;;;;;;;;;;;;3506:1513:92;19834:27:91;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;19823:38:91;3506:1513:92;;;19823:38:91;3506:1513:92;;;19888:35:91;;;;;;;-1:-1:-1;;;;;19888:35:91;;;;;;;;;;;;3506:1513:92;19888:35:91;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;19871:52:91;3506:1513:92;;;19871:52:91;3506:1513:92;;;19946:28:91;;;;;;;-1:-1:-1;;;;;19946:28:91;;;;;;;;;;;;3506:1513:92;19946:28:91;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;19933:41:91;3506:1513:92;;;19933:41:91;3506:1513:92;;;19995:21:91;;;;;;;-1:-1:-1;;;;;19995:21:91;;;;;;;;;;;;3506:1513:92;19995:21:91;;;;;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;19984:32:91;3506:1513:92;;;19984:32:91;3506:1513:92;;;20037:23:91;;;;;;;-1:-1:-1;;;;;20037:23:91;;;;;;;;;;;;3506:1513:92;20037:23:91;;;;;;20026:34;3506:1513:92;;-1:-1:-1;;;;;;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;20111:26:91;;:::i;:::-;19723:41;3693:3;3506:1513:92;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;:::i;:::-;;;;;20178:191:91;;3506:1513:92;;;:::i;:::-;;20178:191:91;;3506:1513:92;20148:231:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19774:39:91;3693:3;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;:::i;:::-;;;;;20420:189:91;;3506:1513:92;;;:::i;:::-;;20420:189:91;;3506:1513:92;20390:229:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19823:38:91;3693:3;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;:::i;:::-;;;;;20660:189:91;;3506:1513:92;;;:::i;:::-;;20660:189:91;;3506:1513:92;20630:229:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19933:41:91;3693:3;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;:::i;:::-;;;;;20900:193:91;;3506:1513:92;;;:::i;:::-;;20900:193:91;;3506:1513:92;20870:233:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19871:52:91;3693:3;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;:::i;:::-;;;;;21144:201:91;;3506:1513:92;;;:::i;:::-;;21144:201:91;;3506:1513:92;21114:241:91;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;19984:32:91;3693:3;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;:::i;:::-;;;;;21396:189:91;;3506:1513:92;;;:::i;:::-;;21396:189:91;;3506:1513:92;21366:229:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;;21636:189:91;;3506:1513:92;;;:::i;:::-;;21636:189:91;;3506:1513:92;21606:229:91;;;:::i;:::-;;;;;:::i;:::-;;22533:27;;:::i;:::-;3506:1513:92;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;21918:657:91;;3506:1513:92;21918:657:91;3506:1513:92;;;21918:657:91;;;:::i;:::-;3506:1513:92;;;21918:657:91;;3506:1513:92;;21918:657:91;;;3693:3;3506:1513:92;;21918:657:91;;3693:3;3506:1513:92;21918:657:91;;;3251:7;3506:1513:92;;21918:657:91;;3251:7;;3506:1513:92;21918:657:91;;3506:1513:92;22395:2:91;21918:657;;;3251:7;3506:1513:92;;;;:::i;:::-;;;21918:657:91;;;3251:7;21918:657;;;3506:1513:92;;;21858:727:91;;;;;;;;;;-1:-1:-1;;;;;21858:727:91;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;21858:727:91;;;;;21846:739;3506:1513:92;;-1:-1:-1;;;;;3506:1513:92;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;19723:41:91;3506:1513:92;;;;;;;;19823:38:91;3506:1513:92;;;;;;;;19933:41:91;3506:1513:92;;;;;;;;19871:52:91;3506:1513:92;;;;;;;;19774:39:91;3506:1513:92;;;;;;;;19984:32:91;3506:1513:92;;;;;;;;20026:34:91;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;:::i;:::-;28446:19:91;;:::i;:::-;28491:32;28475:48;28491:32;;;:::i;28475:48::-;;28322:3;28586:19;3506:1513:92;;;;;:::i;:::-;28463:1:91;3506:1513:92;;;;1220:14:3;;;3693:3:91;28586:19;:::i;3506:1513:92:-;;;;;;;;;;;;;;;;;;2747:18:8;3506:1513:92;;;;;;;;;2747:18:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;3506:1513:92;;;;;;;;;3040:16:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33131:24:91;;;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;33131:24:91;;;;;;;;;;;3506:1513:92;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;33169:9:91;3506:1513:92;;33231:10:91;;33209:33;33231:10;33209:33;:::i;:::-;33169:74;;;;;;3506:1513:92;;;;;;;;;;;;;;33169:74:91;;;3506:1513:92;33169:74:91;;3506:1513:92;;;;;;:::i;:::-;33169:74:91;3506:1513:92;;;33169:74:91;;;;;;;;;;;;3506:1513:92;;;;;;;;;;33261:24:91;;;;;;;;;;;;;;;;;3506:1513:92;;;;;;33261:41:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;33261:24:91;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;;;;;:::i;:::-;33261:24:91;;;;;;;;;33169:74;;;;;;;:::i;:::-;3506:1513:92;;33169:74:91;;;;;;3506:1513:92;;;;;;;;;;;;33131:24:91;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;;;;:::i;:::-;33131:24:91;;;;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25870:11:91;25898:12;25893:73;25919:3;3506:1513:92;;;;25912:5:91;;;;;3506:1513:92;;-1:-1:-1;3506:1513:92;;;25938:17:91;3506:1513:92;;;;;;;;;;;;25938:17:91;;:::i;:::-;25919:3;3506:1513:92;;;;;;;;25898:12:91;;;3506:1513:92;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;25912:5:91;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;:::i;:::-;33464:21:91;;3506:1513:92;;;:::i;:::-;-1:-1:-1;35580:14:91;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;35553:42:91;;3506:1513:92;;35553:42:91;;:::i;:::-;3506:1513:92;;;;;;;33564:9:91;3506:1513:92;;33564:40:91;;;;;;3506:1513:92;;;;;;;;;;;;33564:40:91;;;;;;;;;;3506:1513:92;33638:21:91;;35553:42;33638:21;;3506:1513:92;;;:::i;:::-;;35580:14:91;3506:1513:92;;35553:42:91;;:::i;:::-;3506:1513:92;;;;;;;;;;;;;;33744:43:91;3506:1513:92;;33820:70:91;33843:26;;;;:::i;:::-;33828:41;33820:70;:::i;3506:1513:92:-;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;33564:40:91;;;35553:42;33564:40;;;:::i;:::-;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;2272:16:8;3506:1513:92;;;;;;;;;2272:16:8;3506:1513:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;3693:3:91;;;3368:2;4409:31:92;;;:::i;:::-;3506:1513;3428:2:91;4450:33:92;;;:::i;:::-;3506:1513;3428:2:91;4493:33:92;;;:::i;:::-;3506:1513;;;;;;;:::i;:::-;3693:3:91;;;3506:1513:92;4646:46;;3506:1513;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;3368:2:91;3506:1513:92;4586:400;;3506:1513;3251:7:91;3506:1513:92;4586:400;;3506:1513;3001:2:91;3506:1513:92;4586:400;;3251:7:91;3506:1513:92;4586:400;;3506:1513;3606:3:91;3506:1513:92;4586:400;;3251:7:91;-1:-1:-1;;;;;3506:1513:92;3789:41;;;:::i;:::-;3506:1513;-1:-1:-1;;;;;3506:1513:92;;;;3772:58;3506:1513;;;3772:58;3506:1513;;;;;;;;;;;3905:56;3506:1513;;;3905:56;3506:1513;;;3971:66;3506:1513;;;3971:66;3506:1513;;;4047:60;3506:1513;;;4047:60;3506:1513;;;4117:53;3506:1513;;;4117:53;3506:1513;3001:2:91;3506:1513:92;;;3001:2:91;3506:1513:92;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;3251:7:91;3506:1513:92;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;234:9:40;;;3506:1513:92;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3506:1513:92;;;;234:9:40;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;234:9:40;3506:1513:92;-1:-1:-1;;3506:1513:92;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3506:1513:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;:::i;:::-;;;;;;;:::o;1671:64:2:-;;3506:1513:92;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;3506:1513:92;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;3506:1513:92;;;;;;;2196:43:2;;;;3506:1513:92;;;1671:64:2;;;3506:1513:92;1671:64:2;;3506:1513:92;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;3506:1513:92;;2086:175:2;;1671:64;2196:43;2086:175;;3506:1513:92;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;3506:1513:92;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;3506:1513:92;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;3506:1513:92;1671:64:2;;;3506:1513:92;;;;;;;23794:17:91;3506:1513:92;;;;;;;;;;;23794:17:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;17173:18:91;3506:1513:92;;;;;;;;;;;17173:18:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;17650:17:91;3506:1513:92;;;;;;;;;;;17650:17:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;17890:19:91;3506:1513:92;;;;;;;;;;;17890:19:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;18136:23:91;3506:1513:92;;;;;;;;;;;18136:23:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;18380:17:91;3506:1513:92;;;;;;;;;;;18380:17:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;21793:17:91;3506:1513:92;;;;;;;;;;;21793:17:91;-1:-1:-1;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;-1:-1:-1;3506:1513:92;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;3506:1513:92;;-1:-1:-1;3506:1513:92;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;16974:1:91;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;4455:1;3506:1513;;;;;;;:::o;:::-;;;26286:1:91;3506:1513:92;;;;;;;:::o;:::-;;;25352:1:91;3506:1513:92;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;18206:1:91;3506:1513:92;;;;;;;:::o;:::-;;;18444:1:91;3506:1513:92;;;;;;;:::o;:::-;;;12845:1:91;3506:1513:92;;;;;;;:::o;:::-;;;13113:1:91;3506:1513:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;;:::o;:::-;234:9:40;;;;;;;;3506:1513:92;;234:9:40;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;11484:3185:91;;3506:1513:92;;11644:24:91;;;;;;;-1:-1:-1;;;;;11644:24:91;;;;;;;;;;;;;;;;;;3506:1513:92;;11718:24:91;;;;;;;-1:-1:-1;;;;;11718:24:91;;;;;;;;;;;;11644;11718;;;;;3506:1513:92;;11796:26:91;;;;;;;-1:-1:-1;;;;;11796:26:91;;;;;;;;;;;;11644:24;11796:26;;;;;;3506:1513:92;;11874:25:91;;;;;;;-1:-1:-1;;;;;11874:25:91;;;;;;;;;;;;11644:24;11874:25;;;;;3506:1513:92;;11940:25:91;;;;;;;-1:-1:-1;;;;;11940:25:91;;;;;;;;;;;;11644:24;11940:25;;;;;3506:1513:92;;12003:24:91;;;;;;;-1:-1:-1;;;;;12003:24:91;;;;;;;;;;;;11644;12003;;;;;;3506:1513:92;;12071:27:91;;;;;;;-1:-1:-1;;;;;12071:27:91;;;;;;;;;;;;11644:24;12071:27;;;;;;3506:1513:92;;12133:21:91;;;;;;;-1:-1:-1;;;;;12133:21:91;;;;;;;;;;;;11644:24;12133:21;;;;;;3506:1513:92;;12191:23:91;;;;;;;-1:-1:-1;;;;;12191:23:91;;;;;;;;;;;;11644:24;12191:23;;;;;;3506:1513:92;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;12291:1:91;3506:1513:92;;11644:24:91;3506:1513:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;12336:211:91;;3506:1513:92;;;;;;12503:29:91;3506:1513:92;;;;;;12503:29:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12336:211:91;;3506:1513:92;12304:253:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;12600:211:91;;3506:1513:92;;;;;;12767:29:91;3506:1513:92;;;;;;12767:29:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12600:211:91;;3506:1513:92;12568:253:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;12864:215:91;;3506:1513:92;;;;;;13033:31:91;3506:1513:92;;;;;;13033:31:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12864:215:91;;3506:1513:92;12832:257:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;13132:213:91;;3506:1513:92;;;;;;13300:30:91;3506:1513:92;;;;;;13300:30:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13132:213:91;;3506:1513:92;13100:255:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;13398:189:91;;3506:1513:92;;;;;;13554:18:91;3506:1513:92;;;;;;13554:18:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13398:189:91;;3506:1513:92;13366:231:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;13640:187:91;;3506:1513:92;;;;;;13795:17:91;3506:1513:92;;;;;;13795:17:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13640:187:91;;3506:1513:92;13608:229:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;13880:193:91;;3506:1513:92;;;;;;14038:20:91;3506:1513:92;;;;;;14038:20:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13880:193:91;;3506:1513:92;13848:235:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;14126:186:91;;3506:1513:92;;;;;;14281:16:91;3506:1513:92;;;;;;14281:16:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14126:186:91;;3506:1513:92;14094:228:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;11644:24:91;3506:1513:92;14365:187:91;;3506:1513:92;;;;;;14520:17:91;3506:1513:92;;;;;;14520:17:91;11644:24;3506:1513:92;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14365:187:91;;3506:1513:92;14333:229:91;;;:::i;:::-;;;;;:::i;:::-;;3506:1513:92;;14590:40:91;;;;;;;;;-1:-1:-1;;;;;14590:40:91;;;;;3506:1513:92;14590:40:91;;;;3506:1513:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11644:24:91;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;14590:40:91;;11644:24;14590:40;;;;;14573:57;3506:1513:92;;-1:-1:-1;;;;;;3506:1513:92;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;11484:3185:91:o;3506:1513:92:-;234:9:40;;;;;;3506:1513:92;234:9:40;3506:1513:92;;234:9:40;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3251:7:91:-;3506:1513:92;;;;;;3251:7:91;:::o;4539:185:76:-;-1:-1:-1;3506:1513:92;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;3506:1513:92;;-1:-1:-1;3506:1513:92;4618:99:76;;3506:1513:92;4539:185:76;:::o;3506:1513:92:-;;;;;;;:::i;:::-;1671:64:2;3506:1513:92;;-1:-1:-1;3506:1513:92;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;28463:1:91;3506:1513:92;;;-1:-1:-1;3506:1513:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;234:9:40;-1:-1:-1;;540:42:1;;;;;3506:1513:92;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;3506:1513:92;;:::i;:::-;;695:118:61;3506:1513:92;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;3506:1513:92;;;;;;:::i;:::-;3110:2:91;3693:3;;480:2:61;779:22;719:84;;480:2;;;719:84;;;3506:1513:92;;;;;695:118:61;;;779:22;695:118;;;480:2;;3506:1513:92;480:2:61;;;3506:1513:92;480:2:61;;3506:1513:92;480:2:61;;;;3506:1513:92;480:2:61;;;;;;;;;:::i;:::-;695:118;234:9:40;;695:118:61;;;;;;:::i;:::-;3506:1513:92;;;;;:::i;:::-;438:1:61;3251:7:91;;779:22:61;837:51;;3506:1513:92;581:314:61;:::o;3506:1513:92:-;;;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;3506:1513:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:1513:92;;;;;;:::o;234:9:40:-;3506:1513:92;;;;;;:::i;:::-;234:9:40;3506:1513:92;;:::i;:::-;234:9:40;;;3506:1513:92;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;3506:1513:92;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;3506:1513:92;-1:-1:-1;;;;;234:9:40;;;;3506:1513:92;234:9:40;;;3506:1513:92;;;;234:9:40;;;;3506:1513:92;234:9:40;;;3506:1513:92;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;3506:1513:92;234:9:40;;3506:1513:92;;234:9:40;;3506:1513:92;234:9:40;:::o;3506:1513:92:-;;;;:::o;:::-;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;;33903:813:91;-1:-1:-1;;;;;3506:1513:92;;;;;;34081:38:91;;;;;3506:1513:92;;;;;;;;;;;34081:38:91;;34117:1;3506:1513:92;34117:1:91;34081:38;;;;;;;;;;3506:1513:92;34081:38:91;;;;;;;;;;;;;;33903:813;34212:64;;;;;;:::i;:::-;3506:1513:92;;;;;;;;;;;;;;;;;;;;;34319:25:91;;;;;;;;;;;;;33903:813;34376:9;;3506:1513:92;;;;;;34376:11:91;;;;3506:1513:92;;;;;34376:11:91;;;;;;3506:1513:92;;;;;;:::i;:::-;34376:11:91;;;;;;;;;;;;;;;;;33903:813;-1:-1:-1;3506:1513:92;;-1:-1:-1;;;34391:43:91;;3506:1513:92;;;;;;34391:43:91;;3506:1513:92;34391:43:91;;;;:::i;:::-;;;;;;;;;;;;3506:1513:92;34391:43:91;;;;;;;;33903:813;3506:1513:92;;;34391:52:91;;;;;;;;;;;;3506:1513:92;;;;;;:::i;:::-;34391:52:91;;;;;;;;;;;;33903:813;34376:67;;3506:1513:92;;34554:19:91;;;;34546:48;34604:46;34554:19;34660:49;34554:19;;;34546:48;:::i;3506:1513:92:-;;-1:-1:-1;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3506:1513:92;;;;;;-1:-1:-1;3506:1513:92;34391:52:91;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;34391:52:91;;;;;;;;;;3506:1513:92;;;;;;;;;;34391:43:91;;;;;;;;;;;;;;:::i;:::-;;;;;;3506:1513:92;;;;;;;;;34376:11:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;;;34391:43:91;34376:11;;;;;;;;3506:1513:92;;;;;;;;;34319:25:91;;;;;;;;;;;;;;:::i;:::-;;;;;;3506:1513:92;;;;;;;;;34081:38:91;;;34212:64;34081:38;;:::i;:::-;;;;;3506:1513:92;;;;;;;;;34878:541:91;;3506:1513:92;;:::i;:::-;-1:-1:-1;35042:44:91;3506:1513:92;;-1:-1:-1;;;;;3506:1513:92;;;-1:-1:-1;;;;;;3506:1513:92;;;;;;;;35096:42:91;3506:1513:92;;;;;;;;;;;-1:-1:-1;;;35176:25:91;;35096:42;;-1:-1:-1;;;;3506:1513:92;;35176:25:91;;3506:1513:92;;35176:25:91;;;;;;;;;;;:55;:25;;;;;34878:541;-1:-1:-1;3506:1513:92;;-1:-1:-1;;;35176:55:91;;3506:1513:92;35176:40:91;;3506:1513:92;;;;;35176:25:91;:55;;;:::i;:::-;;;;;;;;;;;;;;;34878:541;3506:1513:92;;;;;;;;;;;;;;;35282:17:91;;;;;;;;;35176:25;35282:17;;3506:1513:92;;;;;;:::i;:::-;35282:17:91;;;;;;;;;;;;;;;;34878:541;3506:1513:92;;;;;;;;;;;35265:35:91;;35176:25;35265:35;;3506:1513:92;35265:35:91;;;;;;;;;;;34878:541;35319:9;;;3506:1513:92;35319:9:91;;;3506:1513:92;;;-1:-1:-1;;;;;35344:19:91;;;;;3506:1513:92;;35365:27:91;;;;3506:1513:92;;35394:17:91;;3506:1513:92;35311:101:91;;;;;34878:541;:::o;35265:35::-;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;;;;;;;-1:-1:-1;;;;;3506:1513:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;3506:1513:92;;;;;540:42:1;3506:1513:92;;;;;;;540:42:1;3506:1513:92;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;3506:1513:92;;;;;:::i;:::-;;;;;35265:35:91;;;;;;3506:1513:92;;;;;;;;;;;35282:17:91;;;;;;;;;;;;;;;;;;:::i;:::-;;;3506:1513:92;;;;540:42:1;;;35282:17:91;;;;;;;;;3506:1513:92;;;;;;;;;35176:55:91;3506:1513:92;35176:55:91;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;3506:1513:92;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":91799,"length":20},{"start":97718,"length":20},{"start":102232,"length":20},{"start":109583,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":64119,"length":20},{"start":66300,"length":20},{"start":66874,"length":20},{"start":90676,"length":20},{"start":112587,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":55329,"length":20},{"start":56100,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":147992,"length":20},{"start":160629,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":76337,"length":20},{"start":90314,"length":20},{"start":112089,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":11777,"length":20},{"start":11857,"length":20},{"start":11941,"length":20},{"start":12122,"length":20},{"start":12287,"length":20},{"start":30431,"length":20},{"start":31149,"length":20},{"start":40131,"length":20},{"start":54998,"length":20},{"start":62348,"length":20},{"start":62936,"length":20},{"start":63809,"length":20},{"start":65867,"length":20},{"start":66154,"length":20},{"start":66704,"length":20},{"start":69754,"length":20},{"start":72153,"length":20},{"start":72250,"length":20},{"start":73345,"length":20},{"start":76006,"length":20},{"start":76108,"length":20},{"start":76438,"length":20},{"start":76523,"length":20},{"start":76624,"length":20},{"start":76709,"length":20},{"start":78196,"length":20},{"start":78274,"length":20},{"start":78379,"length":20},{"start":78535,"length":20},{"start":79085,"length":20},{"start":79326,"length":20},{"start":79407,"length":20},{"start":84880,"length":20},{"start":89383,"length":20},{"start":90059,"length":20},{"start":95654,"length":20},{"start":95873,"length":20},{"start":95953,"length":20},{"start":96134,"length":20},{"start":96315,"length":20},{"start":109765,"length":20},{"start":111825,"length":20},{"start":131768,"length":20},{"start":153522,"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\":[{\"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/IntegrationTestPresets.sol\":\"L3GatewayActorDiamond\"},\"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\":\"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2\",\"dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ\"]},\"test/IntegrationTestPresets.sol\":{\"keccak256\":\"0x0a02df29b6b1e34e1b95e61e76b485ff7a9220fadb2af1c084b9b14dba835f2f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f3ba412cd91ccbc76e45d94add104e5434670ea2ed3f4850612d4fc51284ef4b\",\"dweb:/ipfs/QmaRYUH4DdMAGRxeFBqHPKXdXGchYE86aCxFTZnjMZkB65\"]},\"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":[{"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/IntegrationTestPresets.sol":"L3GatewayActorDiamond"},"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":"0x186fe2a8098ac4138a25d2d3d448daffffd83496becc1fa0118551b3b66ff995","urls":["bzz-raw://27f5a22b8869fa7a2eae2d585435e8099d877df25d4e94c26fcd9bb76807c3d2","dweb:/ipfs/QmQNnNF1Dp7txf1qaKUQBHGrxY4QqPQrRBzJp3pXCy49KJ"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestPresets.sol":{"keccak256":"0x0a02df29b6b1e34e1b95e61e76b485ff7a9220fadb2af1c084b9b14dba835f2f","urls":["bzz-raw://f3ba412cd91ccbc76e45d94add104e5434670ea2ed3f4850612d4fc51284ef4b","dweb:/ipfs/QmaRYUH4DdMAGRxeFBqHPKXdXGchYE86aCxFTZnjMZkB65"],"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/IntegrationTestPresets.sol","id":56101,"exportedSymbols":{"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IPCAddress":[50157],"IntegrationTestBase":[55675],"L1GatewayActorDiamond":[55824],"L2GatewayActorDiamond":[55956],"L3GatewayActorDiamond":[56100],"Subnet":[50044],"SubnetID":[50030],"Validator":[50164],"XnetMessagingFacet":[40144]},"nodeType":"SourceUnit","src":"46:4974:92","nodes":[{"id":55677,"nodeType":"PragmaDirective","src":"46:23:92","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55682,"nodeType":"ImportDirective","src":"71:82:92","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":55678,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"79:8:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55679,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50044,"src":"89:6:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55680,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50157,"src":"97:10:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55681,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50164,"src":"109:9:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55684,"nodeType":"ImportDirective","src":"154:67:92","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":55683,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"162:15:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55686,"nodeType":"ImportDirective","src":"222:71:92","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":55685,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"230:17:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55688,"nodeType":"ImportDirective","src":"294:57:92","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":55687,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"302:14:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55690,"nodeType":"ImportDirective","src":"352:73:92","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":55689,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"360:18:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55692,"nodeType":"ImportDirective","src":"426:75:92","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":55691,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"434:19:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55694,"nodeType":"ImportDirective","src":"502:79:92","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":55693,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"510:21:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55696,"nodeType":"ImportDirective","src":"582:80:92","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":55695,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"590:18:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55698,"nodeType":"ImportDirective","src":"663:62:92","nodes":[],"absolutePath":"test/IntegrationTestBase.sol","file":"./IntegrationTestBase.sol","nameLocation":"-1:-1:-1","scope":56101,"sourceUnit":55676,"symbolAliases":[{"foreign":{"id":55697,"name":"IntegrationTestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"671:19:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55824,"nodeType":"ContractDefinition","src":"727:1366:92","nodes":[{"id":55773,"nodeType":"FunctionDefinition","src":"787:611:92","nodes":[],"body":{"id":55772,"nodeType":"Block","src":"828:570:92","nodes":[],"statements":[{"assignments":[55708],"declarations":[{"constant":false,"id":55708,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"878:19:92","nodeType":"VariableDeclaration","scope":55772,"src":"838:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55707,"nodeType":"UserDefinedTypeName","pathNode":{"id":55706,"name":"GatewayDiamond.ConstructorParams","nameLocations":["838:14:92","853:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"838:32:92"},"referencedDeclaration":35883,"src":"838:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55709,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[55823],"referencedDeclaration":55823,"src":"900:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"838:84:92"},{"expression":{"id":55716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55712,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"932:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55714,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55708,"src":"970:19:92","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":55713,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"949:20:92","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":55715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"949:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"932:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55717,"nodeType":"ExpressionStatement","src":"932:58:92"},{"expression":{"id":55725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55718,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"1001:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55722,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1039:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1031:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55720,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:92","typeDescriptions":{}}},"id":55723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1031:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55719,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1012:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"1001:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55726,"nodeType":"ExpressionStatement","src":"1001:54:92"},{"expression":{"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55727,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"1065:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55731,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1105:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1097:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55729,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:92","typeDescriptions":{}}},"id":55732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1097:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55728,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1077:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"1065:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55735,"nodeType":"ExpressionStatement","src":"1065:56:92"},{"expression":{"id":55743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55736,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"1131:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55740,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1181:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1173:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55738,"name":"address","nodeType":"ElementaryTypeName","src":"1173:7:92","typeDescriptions":{}}},"id":55741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55737,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1154:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":55742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"1131:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":55744,"nodeType":"ExpressionStatement","src":"1131:66:92"},{"expression":{"id":55752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55745,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"1207:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55749,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1251:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1243:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55747,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:92","typeDescriptions":{}}},"id":55750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55746,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1221:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":55751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1221:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"1207:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":55753,"nodeType":"ExpressionStatement","src":"1207:60:92"},{"expression":{"id":55761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55754,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"1277:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55758,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1314:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1306:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55756,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:92","typeDescriptions":{}}},"id":55759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1306:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55755,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"1288:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":55760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"1277:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":55762,"nodeType":"ExpressionStatement","src":"1277:53:92"},{"expression":{"id":55770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55763,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"1340:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55767,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"1375:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1367:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55765,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:92","typeDescriptions":{}}},"id":55768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55764,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"1351:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":55769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"1340:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":55771,"nodeType":"ExpressionStatement","src":"1340:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"796:5:92","overrides":{"id":55702,"nodeType":"OverrideSpecifier","overrides":[],"src":"819:8:92"},"parameters":{"id":55701,"nodeType":"ParameterList","parameters":[],"src":"801:2:92"},"returnParameters":{"id":55703,"nodeType":"ParameterList","parameters":[],"src":"828:0:92"},"scope":55824,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55823,"nodeType":"FunctionDefinition","src":"1404:687:92","nodes":[],"body":{"id":55822,"nodeType":"Block","src":"1509:582:92","nodes":[],"statements":[{"assignments":[55784],"declarations":[{"constant":false,"id":55784,"mutability":"mutable","name":"path","nameLocation":"1536:4:92","nodeType":"VariableDeclaration","scope":55822,"src":"1519:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55782,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55783,"nodeType":"ArrayTypeName","src":"1519:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55790,"initialValue":{"arguments":[{"hexValue":"31","id":55788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1557:1:92","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":55787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1543:13:92","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":55785,"name":"address","nodeType":"ElementaryTypeName","src":"1547:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55786,"nodeType":"ArrayTypeName","src":"1547:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1519:40:92"},{"expression":{"id":55795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55791,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55784,"src":"1569:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55793,"indexExpression":{"hexValue":"30","id":55792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1574:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1569:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55794,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"1579:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1569:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55796,"nodeType":"ExpressionStatement","src":"1569:31:92"},{"assignments":[55801],"declarations":[{"constant":false,"id":55801,"mutability":"mutable","name":"params","nameLocation":"1651:6:92","nodeType":"VariableDeclaration","scope":55822,"src":"1611:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55800,"nodeType":"UserDefinedTypeName","pathNode":{"id":55799,"name":"GatewayDiamond.ConstructorParams","nameLocations":["1611:14:92","1626:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1611:32:92"},"referencedDeclaration":35883,"src":"1611:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55819,"initialValue":{"arguments":[{"arguments":[{"id":55805,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"1736:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55806,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55784,"src":"1760:4:92","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":55804,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"1720:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1730:4:92","1753:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"1720:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55808,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"1801:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55809,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"1848:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55810,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"1903:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":55815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:92","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":55814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1963:15:92","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":55812,"nodeType":"UserDefinedTypeName","pathNode":{"id":55811,"name":"Validator","nameLocations":["1967:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"1967:9:92"},"referencedDeclaration":50164,"src":"1967:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":55813,"nodeType":"ArrayTypeName","src":"1967:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1963:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":55817,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"2018:31:92","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":55802,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"1660:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":55803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1675:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"1660:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":55818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1707:11:92","1780:19:92","1840:6:92","1883:18:92","1944:17:92","1995:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"1660:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1611:449:92"},{"expression":{"id":55820,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55801,"src":"2078:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":55779,"id":55821,"nodeType":"Return","src":"2071:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"1413:20:92","overrides":{"id":55775,"nodeType":"OverrideSpecifier","overrides":[],"src":"1450:8:92"},"parameters":{"id":55774,"nodeType":"ParameterList","parameters":[],"src":"1433:2:92"},"returnParameters":{"id":55779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55823,"src":"1468:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55777,"nodeType":"UserDefinedTypeName","pathNode":{"id":55776,"name":"GatewayDiamond.ConstructorParams","nameLocations":["1468:14:92","1483:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1468:32:92"},"referencedDeclaration":35883,"src":"1468:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1467:41:92"},"scope":55824,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55699,"name":"IntegrationTestBase","nameLocations":["761:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"761:19:92"},"id":55700,"nodeType":"InheritanceSpecifier","src":"761:19:92"}],"canonicalName":"L1GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55824,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L1GatewayActorDiamond","nameLocation":"736:21:92","scope":56101,"usedErrors":[]},{"id":55956,"nodeType":"ContractDefinition","src":"2095:1409:92","nodes":[{"id":55899,"nodeType":"FunctionDefinition","src":"2155:611:92","nodes":[],"body":{"id":55898,"nodeType":"Block","src":"2196:570:92","nodes":[],"statements":[{"assignments":[55834],"declarations":[{"constant":false,"id":55834,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"2246:19:92","nodeType":"VariableDeclaration","scope":55898,"src":"2206:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55833,"nodeType":"UserDefinedTypeName","pathNode":{"id":55832,"name":"GatewayDiamond.ConstructorParams","nameLocations":["2206:14:92","2221:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"2206:32:92"},"referencedDeclaration":35883,"src":"2206:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55835,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[55955],"referencedDeclaration":55955,"src":"2268:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2206:84:92"},{"expression":{"id":55842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55838,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2300:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55840,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"2338:19:92","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":55839,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"2317:20:92","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":55841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"2300:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55843,"nodeType":"ExpressionStatement","src":"2300:58:92"},{"expression":{"id":55851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55844,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"2369:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55848,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2407:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2399:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55846,"name":"address","nodeType":"ElementaryTypeName","src":"2399:7:92","typeDescriptions":{}}},"id":55849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2399:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55845,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"2380:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"2369:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55852,"nodeType":"ExpressionStatement","src":"2369:54:92"},{"expression":{"id":55860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55853,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"2433:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55857,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2473:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2465:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55855,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:92","typeDescriptions":{}}},"id":55858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55854,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"2445:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2445:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"2433:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55861,"nodeType":"ExpressionStatement","src":"2433:56:92"},{"expression":{"id":55869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55862,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"2499:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55866,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2549:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2541:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55864,"name":"address","nodeType":"ElementaryTypeName","src":"2541:7:92","typeDescriptions":{}}},"id":55867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2541:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55863,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"2522:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":55868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2522:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"2499:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":55870,"nodeType":"ExpressionStatement","src":"2499:66:92"},{"expression":{"id":55878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55871,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"2575:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55875,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2619:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2611:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55873,"name":"address","nodeType":"ElementaryTypeName","src":"2611:7:92","typeDescriptions":{}}},"id":55876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2611:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55872,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"2589:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":55877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2589:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"2575:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":55879,"nodeType":"ExpressionStatement","src":"2575:60:92"},{"expression":{"id":55887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55880,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"2645:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55884,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2682:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2674:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55882,"name":"address","nodeType":"ElementaryTypeName","src":"2674:7:92","typeDescriptions":{}}},"id":55885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2674:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55881,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2656:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":55886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"2645:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":55888,"nodeType":"ExpressionStatement","src":"2645:53:92"},{"expression":{"id":55896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55889,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"2708:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55893,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"2743:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2735:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55891,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:92","typeDescriptions":{}}},"id":55894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55890,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2719:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":55895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"2708:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":55897,"nodeType":"ExpressionStatement","src":"2708:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"2164:5:92","overrides":{"id":55828,"nodeType":"OverrideSpecifier","overrides":[],"src":"2187:8:92"},"parameters":{"id":55827,"nodeType":"ParameterList","parameters":[],"src":"2169:2:92"},"returnParameters":{"id":55829,"nodeType":"ParameterList","parameters":[],"src":"2196:0:92"},"scope":55956,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55955,"nodeType":"FunctionDefinition","src":"2772:730:92","nodes":[],"body":{"id":55954,"nodeType":"Block","src":"2877:625:92","nodes":[],"statements":[{"assignments":[55910],"declarations":[{"constant":false,"id":55910,"mutability":"mutable","name":"path","nameLocation":"2904:4:92","nodeType":"VariableDeclaration","scope":55954,"src":"2887:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55908,"name":"address","nodeType":"ElementaryTypeName","src":"2887:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55909,"nodeType":"ArrayTypeName","src":"2887:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55916,"initialValue":{"arguments":[{"hexValue":"32","id":55914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2925:1:92","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":55913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2911:13:92","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":55911,"name":"address","nodeType":"ElementaryTypeName","src":"2915:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55912,"nodeType":"ArrayTypeName","src":"2915:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2887:40:92"},{"expression":{"id":55921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55917,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"2937:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55919,"indexExpression":{"hexValue":"30","id":55918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2942:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2937:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55920,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"2947:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2937:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55922,"nodeType":"ExpressionStatement","src":"2937:31:92"},{"expression":{"id":55927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55923,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"2978:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55925,"indexExpression":{"hexValue":"31","id":55924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2978:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55926,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"2988:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2978:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55928,"nodeType":"ExpressionStatement","src":"2978:33:92"},{"assignments":[55933],"declarations":[{"constant":false,"id":55933,"mutability":"mutable","name":"params","nameLocation":"3062:6:92","nodeType":"VariableDeclaration","scope":55954,"src":"3022:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55932,"nodeType":"UserDefinedTypeName","pathNode":{"id":55931,"name":"GatewayDiamond.ConstructorParams","nameLocations":["3022:14:92","3037:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"3022:32:92"},"referencedDeclaration":35883,"src":"3022:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55951,"initialValue":{"arguments":[{"arguments":[{"id":55937,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"3147:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55938,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55910,"src":"3171:4:92","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":55936,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"3131:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3141:4:92","3164:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"3131:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":55940,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"3212:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55941,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"3259:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55942,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"3314:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":55947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3390:1:92","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":55946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3374:15:92","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":55944,"nodeType":"UserDefinedTypeName","pathNode":{"id":55943,"name":"Validator","nameLocations":["3378:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"3378:9:92"},"referencedDeclaration":50164,"src":"3378:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":55945,"nodeType":"ArrayTypeName","src":"3378:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":55948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":55949,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"3429:31:92","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":55934,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"3071:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":55935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3086:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"3071:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":55950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3118:11:92","3191:19:92","3251:6:92","3294:18:92","3355:17:92","3406:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"3071:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3022:449:92"},{"expression":{"id":55952,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55933,"src":"3489:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":55905,"id":55953,"nodeType":"Return","src":"3482:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"2781:20:92","overrides":{"id":55901,"nodeType":"OverrideSpecifier","overrides":[],"src":"2818:8:92"},"parameters":{"id":55900,"nodeType":"ParameterList","parameters":[],"src":"2801:2:92"},"returnParameters":{"id":55905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55955,"src":"2836:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55903,"nodeType":"UserDefinedTypeName","pathNode":{"id":55902,"name":"GatewayDiamond.ConstructorParams","nameLocations":["2836:14:92","2851:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"2836:32:92"},"referencedDeclaration":35883,"src":"2836:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"2835:41:92"},"scope":55956,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55825,"name":"IntegrationTestBase","nameLocations":["2129:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"2129:19:92"},"id":55826,"nodeType":"InheritanceSpecifier","src":"2129:19:92"}],"canonicalName":"L2GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55956,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L2GatewayActorDiamond","nameLocation":"2104:21:92","scope":56101,"usedErrors":[]},{"id":56100,"nodeType":"ContractDefinition","src":"3506:1513:92","nodes":[{"id":55964,"nodeType":"VariableDeclaration","src":"3566:54:92","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_3","nameLocation":"3583:23:92","scope":56100,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55959,"name":"address","nodeType":"ElementaryTypeName","src":"3566:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3331","id":55962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3617:2:92","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":55961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3609:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55960,"name":"address","nodeType":"ElementaryTypeName","src":"3609:7:92","typeDescriptions":{}}},"id":55963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3609:11:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":56037,"nodeType":"FunctionDefinition","src":"3627:611:92","nodes":[],"body":{"id":56036,"nodeType":"Block","src":"3668:570:92","nodes":[],"statements":[{"assignments":[55972],"declarations":[{"constant":false,"id":55972,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"3718:19:92","nodeType":"VariableDeclaration","scope":56036,"src":"3678:59:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":55971,"nodeType":"UserDefinedTypeName","pathNode":{"id":55970,"name":"GatewayDiamond.ConstructorParams","nameLocations":["3678:14:92","3693:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"3678:32:92"},"referencedDeclaration":35883,"src":"3678:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":55975,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55973,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[56099],"referencedDeclaration":56099,"src":"3740:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":55974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3740:22:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3678:84:92"},{"expression":{"id":55980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55976,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3772:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55978,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55972,"src":"3810:19:92","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":55977,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53587,"src":"3789:20:92","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":55979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:41:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"3772:58:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":55981,"nodeType":"ExpressionStatement","src":"3772:58:92"},{"expression":{"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55982,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"3841:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55986,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3879:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55984,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:92","typeDescriptions":{}}},"id":55987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55983,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"3852:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"3841:54:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55990,"nodeType":"ExpressionStatement","src":"3841:54:92"},{"expression":{"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55991,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"3905:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55995,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"3945:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3937:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55993,"name":"address","nodeType":"ElementaryTypeName","src":"3937:7:92","typeDescriptions":{}}},"id":55996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3937:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55992,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"3917:19:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3917:44:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"3905:56:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55999,"nodeType":"ExpressionStatement","src":"3905:56:92"},{"expression":{"id":56007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56000,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"3971:20:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56004,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4021:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4013:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56002,"name":"address","nodeType":"ElementaryTypeName","src":"4013:7:92","typeDescriptions":{}}},"id":56005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4013:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56001,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"3994:18:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":56006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:43:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"3971:66:92","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":56008,"nodeType":"ExpressionStatement","src":"3971:66:92"},{"expression":{"id":56016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56009,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52814,"src":"4047:11:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56013,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4091:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4083:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56011,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:92","typeDescriptions":{}}},"id":56014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4083:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56010,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"4061:21:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":56015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"4047:60:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":56017,"nodeType":"ExpressionStatement","src":"4047:60:92"},{"expression":{"id":56025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56018,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52820,"src":"4117:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56022,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4154:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4146:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56020,"name":"address","nodeType":"ElementaryTypeName","src":"4146:7:92","typeDescriptions":{}}},"id":56023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56019,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"4128:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":56024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4128:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"4117:53:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":56026,"nodeType":"ExpressionStatement","src":"4117:53:92"},{"expression":{"id":56034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56027,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52817,"src":"4180:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":56031,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"4215:14:92","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":56030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4207:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56029,"name":"address","nodeType":"ElementaryTypeName","src":"4207:7:92","typeDescriptions":{}}},"id":56032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4207:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56028,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"4191:15:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":56033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"4180:51:92","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":56035,"nodeType":"ExpressionStatement","src":"4180:51:92"}]},"baseFunctions":[53292],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"3636:5:92","overrides":{"id":55966,"nodeType":"OverrideSpecifier","overrides":[],"src":"3659:8:92"},"parameters":{"id":55965,"nodeType":"ParameterList","parameters":[],"src":"3641:2:92"},"returnParameters":{"id":55967,"nodeType":"ParameterList","parameters":[],"src":"3668:0:92"},"scope":56100,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56099,"nodeType":"FunctionDefinition","src":"4244:773:92","nodes":[],"body":{"id":56098,"nodeType":"Block","src":"4349:668:92","nodes":[],"statements":[{"assignments":[56048],"declarations":[{"constant":false,"id":56048,"mutability":"mutable","name":"path","nameLocation":"4376:4:92","nodeType":"VariableDeclaration","scope":56098,"src":"4359:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56046,"name":"address","nodeType":"ElementaryTypeName","src":"4359:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56047,"nodeType":"ArrayTypeName","src":"4359:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":56054,"initialValue":{"arguments":[{"hexValue":"33","id":56052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4397:1:92","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":56051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4383:13:92","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":56049,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56050,"nodeType":"ArrayTypeName","src":"4387:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4359:40:92"},{"expression":{"id":56059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56055,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4409:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56057,"indexExpression":{"hexValue":"30","id":56056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4414:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4409:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56058,"name":"CHILD_NETWORK_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52653,"src":"4419:21:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4409:31:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56060,"nodeType":"ExpressionStatement","src":"4409:31:92"},{"expression":{"id":56065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56061,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4450:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56063,"indexExpression":{"hexValue":"31","id":56062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4455:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4450:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56064,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"4460:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4450:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56066,"nodeType":"ExpressionStatement","src":"4450:33:92"},{"expression":{"id":56071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56067,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4493:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56069,"indexExpression":{"hexValue":"31","id":56068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4498:1:92","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4493:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56070,"name":"CHILD_NETWORK_ADDRESS_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"4503:23:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4493:33:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56072,"nodeType":"ExpressionStatement","src":"4493:33:92"},{"assignments":[56077],"declarations":[{"constant":false,"id":56077,"mutability":"mutable","name":"params","nameLocation":"4577:6:92","nodeType":"VariableDeclaration","scope":56098,"src":"4537:46:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":56076,"nodeType":"UserDefinedTypeName","pathNode":{"id":56075,"name":"GatewayDiamond.ConstructorParams","nameLocations":["4537:14:92","4552:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"4537:32:92"},"referencedDeclaration":35883,"src":"4537:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":56095,"initialValue":{"arguments":[{"arguments":[{"id":56081,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52676,"src":"4662:15:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":56082,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56048,"src":"4686:4:92","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":56080,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"4646:8:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":56083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4656:4:92","4679:5:92"],"names":["root","route"],"nodeType":"FunctionCall","src":"4646:46:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"id":56084,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52635,"src":"4727:25:92","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":56085,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52644,"src":"4774:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56086,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52629,"src":"4829:27:92","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":56091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4905:1:92","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":56090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4889:15:92","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":56088,"nodeType":"UserDefinedTypeName","pathNode":{"id":56087,"name":"Validator","nameLocations":["4893:9:92"],"nodeType":"IdentifierPath","referencedDeclaration":50164,"src":"4893:9:92"},"referencedDeclaration":50164,"src":"4893:9:92","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50164_storage_ptr","typeString":"struct Validator"}},"id":56089,"nodeType":"ArrayTypeName","src":"4893:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":56092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4889:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50164_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":56093,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"4944:31:92","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":56078,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"4586:14:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":56079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4601:17:92","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"4586:32:92","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4633:11:92","4706:19:92","4766:6:92","4809:18:92","4870:17:92","4921:21:92"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"4586:400:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4537:449:92"},{"expression":{"id":56096,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56077,"src":"5004:6:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":56043,"id":56097,"nodeType":"Return","src":"4997:13:92"}]},"baseFunctions":[53328],"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"4253:20:92","overrides":{"id":56039,"nodeType":"OverrideSpecifier","overrides":[],"src":"4290:8:92"},"parameters":{"id":56038,"nodeType":"ParameterList","parameters":[],"src":"4273:2:92"},"returnParameters":{"id":56043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56099,"src":"4308:39:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":56041,"nodeType":"UserDefinedTypeName","pathNode":{"id":56040,"name":"GatewayDiamond.ConstructorParams","nameLocations":["4308:14:92","4323:17:92"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"4308:32:92"},"referencedDeclaration":35883,"src":"4308:32:92","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"4307:41:92"},"scope":56100,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55957,"name":"IntegrationTestBase","nameLocations":["3540:19:92"],"nodeType":"IdentifierPath","referencedDeclaration":55675,"src":"3540:19:92"},"id":55958,"nodeType":"InheritanceSpecifier","src":"3540:19:92"}],"canonicalName":"L3GatewayActorDiamond","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50577,51235,51946,51991,52158,52286,52524,58922],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56100,55675,52888,53052,52759,52695,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"L3GatewayActorDiamond","nameLocation":"3515:21:92","scope":56101,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":92} \ No newline at end of file diff --git a/contracts/.out/LibDiamond.sol/LibDiamond.json b/contracts/.out/LibDiamond.sol/LibDiamond.json new file mode 100644 index 000000000..50539a22f --- /dev/null +++ b/contracts/.out/LibDiamond.sol/LibDiamond.json @@ -0,0 +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":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/contracts/.out/LibGateway.sol/LibGateway.json b/contracts/.out/LibGateway.sol/LibGateway.json new file mode 100644 index 000000000..4eb50a30a --- /dev/null +++ b/contracts/.out/LibGateway.sol/LibGateway.json @@ -0,0 +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":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/contracts/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json b/contracts/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json new file mode 100644 index 000000000..930027705 --- /dev/null +++ b/contracts/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json @@ -0,0 +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":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/contracts/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json b/contracts/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json new file mode 100644 index 000000000..905974654 --- /dev/null +++ b/contracts/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json @@ -0,0 +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":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/contracts/.out/LibMaxPQ.sol/LibMaxPQ.json b/contracts/.out/LibMaxPQ.sol/LibMaxPQ.json new file mode 100644 index 000000000..38f3f4c9d --- /dev/null +++ b/contracts/.out/LibMaxPQ.sol/LibMaxPQ.json @@ -0,0 +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":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/contracts/.out/LibMinPQ.sol/LibMinPQ.json b/contracts/.out/LibMinPQ.sol/LibMinPQ.json new file mode 100644 index 000000000..f1f7f7e72 --- /dev/null +++ b/contracts/.out/LibMinPQ.sol/LibMinPQ.json @@ -0,0 +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":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/contracts/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json b/contracts/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json new file mode 100644 index 000000000..5dc3dce62 --- /dev/null +++ b/contracts/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json @@ -0,0 +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":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/contracts/.out/LibPQ.sol/LibPQ.json b/contracts/.out/LibPQ.sol/LibPQ.json new file mode 100644 index 000000000..f9ed4483c --- /dev/null +++ b/contracts/.out/LibPQ.sol/LibPQ.json @@ -0,0 +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":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/contracts/.out/LibPausable.sol/Pausable.json b/contracts/.out/LibPausable.sol/Pausable.json new file mode 100644 index 000000000..dbcb0c500 --- /dev/null +++ b/contracts/.out/LibPausable.sol/Pausable.json @@ -0,0 +1 @@ +{"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/contracts/.out/LibQuorum.sol/LibQuorum.json b/contracts/.out/LibQuorum.sol/LibQuorum.json new file mode 100644 index 000000000..0baeb663d --- /dev/null +++ b/contracts/.out/LibQuorum.sol/LibQuorum.json @@ -0,0 +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":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/contracts/.out/LibReentrancyGuard.sol/ReentrancyGuard.json b/contracts/.out/LibReentrancyGuard.sol/ReentrancyGuard.json new file mode 100644 index 000000000..2a2126aa3 --- /dev/null +++ b/contracts/.out/LibReentrancyGuard.sol/ReentrancyGuard.json @@ -0,0 +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":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/contracts/.out/LibStaking.sol/LibAddressStakingReleases.json b/contracts/.out/LibStaking.sol/LibAddressStakingReleases.json new file mode 100644 index 000000000..f1f4bd873 --- /dev/null +++ b/contracts/.out/LibStaking.sol/LibAddressStakingReleases.json @@ -0,0 +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":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/contracts/.out/LibStaking.sol/LibStaking.json b/contracts/.out/LibStaking.sol/LibStaking.json new file mode 100644 index 000000000..877e5d0c1 --- /dev/null +++ b/contracts/.out/LibStaking.sol/LibStaking.json @@ -0,0 +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":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/contracts/.out/LibStaking.sol/LibStakingReleaseQueue.json b/contracts/.out/LibStaking.sol/LibStakingReleaseQueue.json new file mode 100644 index 000000000..b07a81386 --- /dev/null +++ b/contracts/.out/LibStaking.sol/LibStakingReleaseQueue.json @@ -0,0 +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":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/contracts/.out/LibStaking.sol/LibValidatorSet.json b/contracts/.out/LibStaking.sol/LibValidatorSet.json new file mode 100644 index 000000000..89c0c2725 --- /dev/null +++ b/contracts/.out/LibStaking.sol/LibValidatorSet.json @@ -0,0 +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":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/contracts/.out/LibStaking.sol/LibValidatorTracking.json b/contracts/.out/LibStaking.sol/LibValidatorTracking.json new file mode 100644 index 000000000..fc275de7e --- /dev/null +++ b/contracts/.out/LibStaking.sol/LibValidatorTracking.json @@ -0,0 +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":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/contracts/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json b/contracts/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json new file mode 100644 index 000000000..6e040d932 --- /dev/null +++ b/contracts/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json @@ -0,0 +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":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/contracts/.out/LibSubnetActor.sol/LibSubnetActor.json b/contracts/.out/LibSubnetActor.sol/LibSubnetActor.json new file mode 100644 index 000000000..e13693ca8 --- /dev/null +++ b/contracts/.out/LibSubnetActor.sol/LibSubnetActor.json @@ -0,0 +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":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/contracts/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json b/contracts/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json new file mode 100644 index 000000000..74e5e5849 --- /dev/null +++ b/contracts/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json @@ -0,0 +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":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/contracts/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json b/contracts/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json new file mode 100644 index 000000000..058a16b9a --- /dev/null +++ b/contracts/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json @@ -0,0 +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":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/contracts/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json b/contracts/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json new file mode 100644 index 000000000..4b975e3ad --- /dev/null +++ b/contracts/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json @@ -0,0 +1 @@ +{"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/contracts/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json b/contracts/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json new file mode 100644 index 000000000..5a363115d --- /dev/null +++ b/contracts/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:96:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:96:-: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":56423,"exportedSymbols":{"Merkle":[30565],"MerkleTreeHelper":[56422]},"nodeType":"SourceUnit","src":"46:973:96","nodes":[{"id":56278,"nodeType":"PragmaDirective","src":"46:23:96","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56280,"nodeType":"ImportDirective","src":"71:40:96","nodes":[],"absolutePath":"lib/murky/src/Merkle.sol","file":"murky/Merkle.sol","nameLocation":"-1:-1:-1","scope":56423,"sourceUnit":30566,"symbolAliases":[{"foreign":{"id":56279,"name":"Merkle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30565,"src":"79:6:96","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56422,"nodeType":"ContractDefinition","src":"113:905:96","nodes":[{"id":56421,"nodeType":"FunctionDefinition","src":"144:872:96","nodes":[],"body":{"id":56420,"nodeType":"Block","src":"303:713:96","nodes":[],"statements":[{"assignments":[56297],"declarations":[{"constant":false,"id":56297,"mutability":"mutable","name":"merkleTree","nameLocation":"320:10:96","nodeType":"VariableDeclaration","scope":56420,"src":"313:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"},"typeName":{"id":56296,"nodeType":"UserDefinedTypeName","pathNode":{"id":56295,"name":"Merkle","nameLocations":["313:6:96"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"313:6:96"},"referencedDeclaration":30565,"src":"313:6:96","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"visibility":"internal"}],"id":56302,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"333:10:96","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Merkle_$30565_$","typeString":"function () returns (contract Merkle)"},"typeName":{"id":56299,"nodeType":"UserDefinedTypeName","pathNode":{"id":56298,"name":"Merkle","nameLocations":["337:6:96"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"337:6:96"},"referencedDeclaration":30565,"src":"337:6:96","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}}},"id":56301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:12:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"nodeType":"VariableDeclarationStatement","src":"313:32:96"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56303,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56283,"src":"360:5:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"366:6:96","memberName":"length","nodeType":"MemberAccess","src":"360:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":56305,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56286,"src":"376:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"383:6:96","memberName":"length","nodeType":"MemberAccess","src":"376:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"360:29:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56313,"nodeType":"IfStatement","src":"356:93:96","trueBody":{"id":56312,"nodeType":"Block","src":"391:58:96","statements":[{"expression":{"arguments":[{"hexValue":"646966666572656e74206172726179206c656e67746873","id":56309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"412:25:96","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":56308,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"405:6:96","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"405:33:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56311,"nodeType":"ExpressionStatement","src":"405:33:96"}]}},{"assignments":[56315],"declarations":[{"constant":false,"id":56315,"mutability":"mutable","name":"len","nameLocation":"466:3:96","nodeType":"VariableDeclaration","scope":56420,"src":"458:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56314,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56318,"initialValue":{"expression":{"id":56316,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56283,"src":"472:5:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"478:6:96","memberName":"length","nodeType":"MemberAccess","src":"472:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"458:26:96"},{"assignments":[56320],"declarations":[{"constant":false,"id":56320,"mutability":"mutable","name":"root","nameLocation":"503:4:96","nodeType":"VariableDeclaration","scope":56420,"src":"495:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"495:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56321,"nodeType":"VariableDeclarationStatement","src":"495:12:96"},{"assignments":[56327],"declarations":[{"constant":false,"id":56327,"mutability":"mutable","name":"proofs","nameLocation":"536:6:96","nodeType":"VariableDeclaration","scope":56420,"src":"517:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":56324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"517:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56325,"nodeType":"ArrayTypeName","src":"517:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":56326,"nodeType":"ArrayTypeName","src":"517:11:96","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"id":56334,"initialValue":{"arguments":[{"id":56332,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56315,"src":"561:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"545:15:96","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":56328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56329,"nodeType":"ArrayTypeName","src":"549:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":56330,"nodeType":"ArrayTypeName","src":"549:11:96","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}}},"id":56333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:20:96","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:96"},{"assignments":[56339],"declarations":[{"constant":false,"id":56339,"mutability":"mutable","name":"data","nameLocation":"592:4:96","nodeType":"VariableDeclaration","scope":56420,"src":"575:21:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":56337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"575:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56338,"nodeType":"ArrayTypeName","src":"575:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":56345,"initialValue":{"arguments":[{"id":56343,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56315,"src":"613:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"599:13:96","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":56340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"603:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56341,"nodeType":"ArrayTypeName","src":"603:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":56344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"599:18:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"575:42:96"},{"body":{"id":56378,"nodeType":"Block","src":"661:102:96","statements":[{"expression":{"id":56376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56356,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56339,"src":"675:4:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":56358,"indexExpression":{"id":56357,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56347,"src":"680:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"675:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":56366,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56283,"src":"729:5:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56368,"indexExpression":{"id":56367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56347,"src":"735:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"729:8:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":56369,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56286,"src":"739:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56371,"indexExpression":{"id":56370,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56347,"src":"746:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"739:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"718:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"722:6:96","memberName":"encode","nodeType":"MemberAccess","src":"718:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:31:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56363,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"708:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:42:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"695:5:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":56360,"name":"bytes","nodeType":"ElementaryTypeName","src":"695:5:96","typeDescriptions":{}}},"id":56362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"701:6:96","memberName":"concat","nodeType":"MemberAccess","src":"695:12:96","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:56:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56359,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"685:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:67:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"675:77:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56377,"nodeType":"ExpressionStatement","src":"675:77:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56350,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56347,"src":"647:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":56351,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56315,"src":"651:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"647:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56379,"initializationExpression":{"assignments":[56347],"declarations":[{"constant":false,"id":56347,"mutability":"mutable","name":"i","nameLocation":"640:1:96","nodeType":"VariableDeclaration","scope":56379,"src":"632:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56346,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56349,"initialValue":{"hexValue":"30","id":56348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"644:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"632:13:96"},"loopExpression":{"expression":{"id":56354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"656:3:96","subExpression":{"id":56353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56347,"src":"656:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56355,"nodeType":"ExpressionStatement","src":"656:3:96"},"nodeType":"ForStatement","src":"627:136:96"},{"expression":{"id":56385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56380,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56320,"src":"773:4:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56383,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56339,"src":"799:4:96","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":56381,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56297,"src":"780:10:96","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":56382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"791:7:96","memberName":"getRoot","nodeType":"MemberAccess","referencedDeclaration":30661,"src":"780:18:96","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":56384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:24:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"773:31:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56386,"nodeType":"ExpressionStatement","src":"773:31:96"},{"body":{"id":56414,"nodeType":"Block","src":"869:109:96","statements":[{"assignments":[56401],"declarations":[{"constant":false,"id":56401,"mutability":"mutable","name":"proof","nameLocation":"900:5:96","nodeType":"VariableDeclaration","scope":56414,"src":"883:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":56399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56400,"nodeType":"ArrayTypeName","src":"883:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":56407,"initialValue":{"arguments":[{"id":56404,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56339,"src":"928:4:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":56405,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56388,"src":"934:1:96","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":56402,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56297,"src":"908:10:96","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":56403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:8:96","memberName":"getProof","nodeType":"MemberAccess","referencedDeclaration":30766,"src":"908:19:96","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":56406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:28:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"883:53:96"},{"expression":{"id":56412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56408,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56327,"src":"950:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":56410,"indexExpression":{"id":56409,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56388,"src":"957:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"950:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56411,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56401,"src":"962:5:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"950:17:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":56413,"nodeType":"ExpressionStatement","src":"950:17:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56388,"src":"855:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":56392,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56315,"src":"859:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"855:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56415,"initializationExpression":{"assignments":[56388],"declarations":[{"constant":false,"id":56388,"mutability":"mutable","name":"i","nameLocation":"848:1:96","nodeType":"VariableDeclaration","scope":56415,"src":"840:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56387,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56390,"initialValue":{"hexValue":"30","id":56389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"852:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"840:13:96"},"loopExpression":{"expression":{"id":56395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"864:3:96","subExpression":{"id":56394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56388,"src":"864:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56396,"nodeType":"ExpressionStatement","src":"864:3:96"},"nodeType":"ForStatement","src":"835:143:96"},{"expression":{"components":[{"id":56416,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56320,"src":"996:4:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56417,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56327,"src":"1002:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"id":56418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"995:14:96","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":56294,"id":56419,"nodeType":"Return","src":"988:21:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"createMerkleProofsForValidators","nameLocation":"153:31:96","parameters":{"id":56287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56283,"mutability":"mutable","name":"addrs","nameLocation":"211:5:96","nodeType":"VariableDeclaration","scope":56421,"src":"194:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56281,"name":"address","nodeType":"ElementaryTypeName","src":"194:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56282,"nodeType":"ArrayTypeName","src":"194:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56286,"mutability":"mutable","name":"weight","nameLocation":"243:6:96","nodeType":"VariableDeclaration","scope":56421,"src":"226:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56284,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56285,"nodeType":"ArrayTypeName","src":"226:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"184:71:96"},"returnParameters":{"id":56294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56421,"src":"274:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56421,"src":"283:18:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":56290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":56291,"nodeType":"ArrayTypeName","src":"283:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":56292,"nodeType":"ArrayTypeName","src":"283:11:96","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"273:29:96"},"scope":56422,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleTreeHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[56422],"name":"MerkleTreeHelper","nameLocation":"121:16:96","scope":56423,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":96} \ No newline at end of file diff --git a/contracts/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json b/contracts/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json new file mode 100644 index 000000000..d6adc26e4 --- /dev/null +++ b/contracts/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:97:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","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/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":56434,"exportedSymbols":{"NumberContractFacetEight":[56433]},"nodeType":"SourceUnit","src":"46:141:97","nodes":[{"id":56424,"nodeType":"PragmaDirective","src":"46:23:97","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56433,"nodeType":"ContractDefinition","src":"71:115:97","nodes":[{"id":56432,"nodeType":"FunctionDefinition","src":"111:73:97","nodes":[],"body":{"id":56431,"nodeType":"Block","src":"159:25:97","nodes":[],"statements":[{"expression":{"hexValue":"38","id":56429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:97","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":56428,"id":56430,"nodeType":"Return","src":"169:8:97"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:97","parameters":{"id":56425,"nodeType":"ParameterList","parameters":[],"src":"126:2:97"},"returnParameters":{"id":56428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56432,"src":"152:5:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56426,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:97"},"scope":56433,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56433],"name":"NumberContractFacetEight","nameLocation":"80:24:97","scope":56434,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":97} \ No newline at end of file diff --git a/contracts/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json b/contracts/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json new file mode 100644 index 000000000..b99c2f160 --- /dev/null +++ b/contracts/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:98:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:98:-: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":56445,"exportedSymbols":{"NumberContractFacetSeven":[56444]},"nodeType":"SourceUnit","src":"46:141:98","nodes":[{"id":56435,"nodeType":"PragmaDirective","src":"46:23:98","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56444,"nodeType":"ContractDefinition","src":"71:115:98","nodes":[{"id":56443,"nodeType":"FunctionDefinition","src":"111:73:98","nodes":[],"body":{"id":56442,"nodeType":"Block","src":"159:25:98","nodes":[],"statements":[{"expression":{"hexValue":"37","id":56440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:98","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":56439,"id":56441,"nodeType":"Return","src":"169:8:98"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:98","parameters":{"id":56436,"nodeType":"ParameterList","parameters":[],"src":"126:2:98"},"returnParameters":{"id":56439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56443,"src":"152:5:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56437,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:98"},"scope":56444,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56444],"name":"NumberContractFacetSeven","nameLocation":"80:24:98","scope":56445,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":98} \ No newline at end of file diff --git a/contracts/.out/Quorum.sol/Quorum.json b/contracts/.out/Quorum.sol/Quorum.json new file mode 100644 index 000000000..c22e6a93c --- /dev/null +++ b/contracts/.out/Quorum.sol/Quorum.json @@ -0,0 +1 @@ +{"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/contracts/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json b/contracts/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json new file mode 100644 index 000000000..4767b3a11 --- /dev/null +++ b/contracts/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json @@ -0,0 +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: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/contracts/.out/SelectorLibrary.sol/SelectorLibrary.json b/contracts/.out/SelectorLibrary.sol/SelectorLibrary.json new file mode 100644 index 000000000..e9666f111 --- /dev/null +++ b/contracts/.out/SelectorLibrary.sol/SelectorLibrary.json @@ -0,0 +1 @@ +{"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:99:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f19168601846101bd565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102f7565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b60c081019081106001600160401b0382111761011e57604052565b61018081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101f6575050016000815290565b80602080928401015181850152016101e5565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b9060209081838203126102c55782516001600160401b03938482116102c5570181601f820112156102c557805193841161011e578360051b9060405194610282858401876101bd565b855283808601928201019283116102c5578301905b8282106102a5575050505090565b81516001600160e01b0319811681036102c5578152908301908301610297565b600080fd5b604051906102d782610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b60408051916020928381018161030d82856101de565b0391610321601f19938481018352826101bd565b5190208351858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261034b81610134565b519020146117f9578251848101906103738161036784876101de565b038481018352826101bd565b5190208351858101907114dd589b995d1058dd1bdc911a585b5bdb9960721b8252601281526103a181610134565b519020146117f9578251848101906103bd8161036784876101de565b5190208351858101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103ee81610134565b519020146117f95782518481019061040a8161036784876101de565b5190208351858101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261043581610134565b519020146117c1578251848101906104518161036784876101de565b51902083518581019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261047e81610134565b519020146117415782518481019061049a8161036784876101de565b5190208351858101907111d85d195dd85e51d95d1d195c919858d95d60721b8252601281526104c881610134565b519020146114f3578251848101906104e48161036784876101de565b5190208351858101907211d85d195dd85e53585b9859d95c919858d95d606a1b82526013815261051381610134565b519020146114585782518481019061052f8161036784876101de565b5190208351858101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261056081610134565b519020146114065782518481019061057c8161036784876101de565b5190208351858101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b8252601281526105aa81610134565b519020146113ab578251848101906105c68161036784876101de565b51902083518581019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105f581610134565b5190201461134f578251848101906106118161036784876101de565b51902083518581019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261064181610134565b519020146112f95782518481019061065d8161036784876101de565b51902083518581019071161b995d13595cdcd859da5b99d19858d95d60721b82526012815261068b81610134565b519020146112c1578251848101906106a78161036784876101de565b5190208351858101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106d981610134565b51902014611081578251848101906106f58161036784876101de565b5190208351858101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261072e81610134565b51902014610fd95782518481019061074a8161036784876101de565b5190208351858101907414dd589b995d1058dd1bdc94185d5cd9519858d95d605a1b82526015815261077b81610134565b51902014610f83578251848101906107978161036784876101de565b5190208351858101907514dd589b995d1058dd1bdc94995dd85c99119858d95d60521b8252601681526107c981610134565b51902014610f2d578251848101906107e58161036784876101de565b5190208351858101907f5375626e65744163746f72436865636b706f696e74696e6746616365740000008252601d815261081e81610134565b51902014610ed75782518481019061083a8161036784876101de565b51902083518581019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261086981610134565b51902014610e9f578251848101906108858161036784876101de565b5190208351858101907014dd589b995d11d95d1d195c919858d95d607a1b8252601181526108b281610134565b51902014610df6578251848101906108ce8161036784876101de565b5190208351858101907545524332305072657365744669786564537570706c7960501b82526016815261090081610134565b51902014610d065782518481019061091c8161036784876101de565b5190208351858101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261095581610134565b51902014610cea578251848101906109718161036784876101de565b5190208351858101907f4e756d626572436f6e74726163744661636574536576656e00000000000000008252601881526109aa81610134565b51902014610cea578251848101906109c68161036784876101de565b5190208351858101906e53656c6563746f724c69627261727960881b8252600f81526109f181610134565b51902014610cb257825184810190610a0d8161036784876101de565b51902083518581019068546573745574696c7360b81b825260098152610a3281610134565b51902014610c1757610a5a83519182610a4e87820180966101de565b039081018352826101bd565b5190208151838101906e5375626e65744163746f724d6f636b60881b8252600f8152610a8581610134565b51902014610ac55760649250519062461bcd60e51b82526004820152601260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b908151906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610c1491610239565b90565b50509061016082610c14935190610c2d8261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610239565b5050906080826001610c14945191610cc983610103565b606083528483019485528201526319b8a26360e21b60608201520190610239565b505050610c1490610cf96102ca565b8051810182019101610239565b5050908151906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610c1491610239565b50509061018082610c14935190610e0c826101a1565b6101608083528483019485526009918301919091526342bf3cc160e01b6060830152630be0611160e01b6080830152631b0766c360e01b60a0830152630a372bf360e41b60c0830152630f5849d160e01b60e0830152639836b75f60e01b61010083015263030f605160e01b610120830152631163dca560e01b61014083015263a46d044d60e01b908201520190610239565b5050906080826001610c14945191610eb683610103565b60608352848301948552820152637be005d560e01b60608201520190610239565b50509060c0826003610c14945191610eee83610186565b60a0808452858401958652908301919091526313408c9b60e11b606083015263b9ee2bb960e01b608083015263cc2dc2b960e01b908201520190610239565b50509060c0826003610c14945191610f4483610186565b60a080845285840195865290830191909152634e71d92d60e01b606083015263ed7c4da160e01b6080830152632643057b60e11b908201520190610239565b50509060c0826003610c14945191610f9a83610186565b60a080845285840195865290830191909152638456cb5960e01b6060830152635c975abb60e01b6080830152631fa5d41d60e11b908201520190610239565b50509061018082610c14935190610fef826101a1565b6101608083528483019485526009918301919091526310fd426160e01b60608301526330b858b160e11b60808301526341c0e1b560e01b60a083015263d66d9e1960e01b60c0830152625bfdf360e51b60e08301526366783c9b60e01b610100830152636d2e84f760e11b610120830152633a4b66f160e01b6101408301526305c2fbcf60e31b908201520190610239565b5050908151906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610c1491610239565b5050906080826001610c149451916112d883610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610239565b50509060c0826003610c1494519161131083610186565b60a080845285840195865290830191909152630df1446160e01b60608301526304465a5d60e21b608083015263e49a547d60e01b908201520190610239565b50509060e0826004610c149451916113668361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610239565b50509060e0826004610c149451916113c28361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610239565b50509081519060a08201918083106001600160401b0384111761011e5760028484610c149652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610239565b50509061016082610c1493519061146e8261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610239565b5050908151906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610c1491610239565b5050908151906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610c1491610239565b5050906080826001610c149451916117d883610103565b606083528483019485528201526307e4c70760e21b60608201520190610239565b505050610c1490610cf961020956fea2646970667358221220163f079da76913fb32a1f8cfc36cca7297ac9428d0704be02fd8d560a3de7dde64736f6c63430008130033","sourceMap":"72:20636:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;72:20636:99;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;72:20636:99;;;;;-1:-1:-1;72:20636:99;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;-1:-1:-1;72:20636:99;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;72:20636:99;;;;;;;;;;;;;;;;;-1:-1:-1;72:20636:99;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;:::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:99;;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:99;;;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:99;;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:99;;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:99;;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:99;;;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:99;;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:99;;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:99;;;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:99;;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:99;;;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:99;;;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:99;;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:99;;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:99;;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:99;;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:99;;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:99;;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:99;;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:99;;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:99;;1378:35;19081;;;;;:::i;:::-;72:20636;19071:46;;19029:88;19025:1637;;72:20636;;;;20671:28;;;;;;;;;72:20636;;;;;;-1:-1:-1;;;72:20636:99;;;;20671:28;19025:1637;72:20636;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;;;19156:1495;;;:::i;:::-;19133:1518;:::o;18153:863::-;72:20636;;;;;18278:727;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;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:99;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;;;15778:1047;;;:::i;14696:935::-;72:20636;;;;;14829:791;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;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:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;13835:407;;;:::i;13125:556::-;72:20636;;;;;;13263:407;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;13263:407;;;:::i;12561:555::-;72:20636;;;;;;12698:407;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;12698:407;;;:::i;11611:941::-;72:20636;;;;;11750:791;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;11750:791;;;:::i;8870:2732::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;;;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:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;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:99;;;;;;;;6260:343;72:20636;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:343;:::i;5241:873::-;72:20636;;;;;5376:727;72:20636;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;5376:727;;;:::i;2440:2792::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;;;2574:2647;;;:::i;1752:679::-;72:20636;;;;;;;;;;;;;-1:-1:-1;;;;;72:20636:99;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;-1:-1:-1;;;72:20636:99;;;;;;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":57061,"exportedSymbols":{"SelectorLibrary":[57060]},"nodeType":"SourceUnit","src":"46:20663:99","nodes":[{"id":56446,"nodeType":"PragmaDirective","src":"46:24:99","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":57060,"nodeType":"ContractDefinition","src":"72:20636:99","nodes":[{"id":57059,"nodeType":"FunctionDefinition","src":"102:20604:99","nodes":[],"body":{"id":57058,"nodeType":"Block","src":"206:20500:99","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56457,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"247:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"230:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"234:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"230:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56454,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"220:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"220:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794469616d6f6e64","id":56463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289:16:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""},"value":"GatewayDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""}],"expression":{"id":56461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"272:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"276:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"272:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"272:34:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56460,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"262:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262:45:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"220:87:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56477,"nodeType":"IfStatement","src":"216:356:99","trueBody":{"id":56476,"nodeType":"Block","src":"309:263:99","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":56469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"378:133:99","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":56471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"534:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56470,"name":"bytes4","nodeType":"ElementaryTypeName","src":"534:6:99","typeDescriptions":{}}},"id":56472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"534:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56473,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"533:10:99","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":56467,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"346:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"350:6:99","memberName":"decode","nodeType":"MemberAccess","src":"346:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"346:215:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56475,"nodeType":"Return","src":"323:238:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56481,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"612:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"595:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"599:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"595:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"595:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56478,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"585:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724469616d6f6e64","id":56487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"654:20:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""},"value":"SubnetActorDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""}],"expression":{"id":56485,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"637:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"641:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"637:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"637:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56484,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"627:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:49:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"585:91:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56501,"nodeType":"IfStatement","src":"581:360:99","trueBody":{"id":56500,"nodeType":"Block","src":"678:263:99","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":56493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"747:133:99","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":56495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"903:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56494,"name":"bytes4","nodeType":"ElementaryTypeName","src":"903:6:99","typeDescriptions":{}}},"id":56496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"903:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56497,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"902:10:99","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":56491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"715:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"719:6:99","memberName":"decode","nodeType":"MemberAccess","src":"715:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:215:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56499,"nodeType":"Return","src":"692:238:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56505,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"981:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"964:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"968:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"964:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56502,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"954:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e657452656769737472794469616d6f6e64","id":56511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1023:23:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""},"value":"SubnetRegistryDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""}],"expression":{"id":56509,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1006:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1010:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"1006:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1006:41:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56508,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"996:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:52:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"954:94:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56525,"nodeType":"IfStatement","src":"950:363:99","trueBody":{"id":56524,"nodeType":"Block","src":"1050:263:99","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":56517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1119:133:99","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":56519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1275:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56518,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1275:6:99","typeDescriptions":{}}},"id":56520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1275:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1274:10:99","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":56515,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1087:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1091:6:99","memberName":"decode","nodeType":"MemberAccess","src":"1087:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:215:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56523,"nodeType":"Return","src":"1064:238:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56529,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"1353:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1336:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1340:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"1336:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56526,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1326:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1326:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":56535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1395:17:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":56533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1378:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1382:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"1378:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:35:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56532,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1368:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:46:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1326:88:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56549,"nodeType":"IfStatement","src":"1322:421:99","trueBody":{"id":56548,"nodeType":"Block","src":"1416:327:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000","id":56541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1485:197:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1705:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:99","typeDescriptions":{}}},"id":56544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1705:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1704:10:99","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":56539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1453:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1457:6:99","memberName":"decode","nodeType":"MemberAccess","src":"1453:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1453:279:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56547,"nodeType":"Return","src":"1430:302:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56553,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"1783:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56551,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1766:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1770:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"1766:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1766:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56550,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1756:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":56559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1825:19:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":56557,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1808:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1812:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"1808:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56556,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1798:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1798:48:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1756:90:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56573,"nodeType":"IfStatement","src":"1752:679:99","trueBody":{"id":56572,"nodeType":"Block","src":"1848:583:99","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000","id":56565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1917:453:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2393:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56566,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2393:6:99","typeDescriptions":{}}},"id":56568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2393:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2392:10:99","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":56563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1885:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1889:6:99","memberName":"decode","nodeType":"MemberAccess","src":"1885:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:535:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56571,"nodeType":"Return","src":"1862:558:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56577,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"2471:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2454:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2458:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"2454:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56574,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2444:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":56583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2513:20:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":56581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2496:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2500:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"2496:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2496:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56580,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2486:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:49:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2444:91:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56597,"nodeType":"IfStatement","src":"2440:2792:99","trueBody":{"id":56596,"nodeType":"Block","src":"2537:2695:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000","id":56589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2606:2565:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5194:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56590,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5194:6:99","typeDescriptions":{}}},"id":56592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56593,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5193:10:99","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":56587,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2574:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2578:6:99","memberName":"decode","nodeType":"MemberAccess","src":"2574:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:2647:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56595,"nodeType":"Return","src":"2551:2670:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56601,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"5272:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5255:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5259:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"5255:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56598,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5245:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":56607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5314:21:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":56605,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5297:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5301:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"5297:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5297:39:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56604,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5287:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5287:50:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5245:92:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56621,"nodeType":"IfStatement","src":"5241:873:99","trueBody":{"id":56620,"nodeType":"Block","src":"5339:775:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000","id":56613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5408:645:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6076:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56614,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6076:6:99","typeDescriptions":{}}},"id":56616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6076:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6075:10:99","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":56611,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5376:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5380:6:99","memberName":"decode","nodeType":"MemberAccess","src":"5376:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5376:727:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56619,"nodeType":"Return","src":"5353:750:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56625,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"6154:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56623,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6137:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6141:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"6137:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56622,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6127:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":56631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6196:23:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":56629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6179:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6183:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"6179:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6179:41:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56628,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6169:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6169:52:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6127:94:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56645,"nodeType":"IfStatement","src":"6123:491:99","trueBody":{"id":56644,"nodeType":"Block","src":"6223:391:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000","id":56637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6292:261:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6576:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56638,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6576:6:99","typeDescriptions":{}}},"id":56640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6576:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56641,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6575:10:99","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":56635,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6260:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6264:6:99","memberName":"decode","nodeType":"MemberAccess","src":"6260:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:343:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56643,"nodeType":"Return","src":"6237:366:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56649,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"6654:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56647,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6637:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6641:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"6637:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56646,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6627:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6627:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":56655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6696:20:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":56653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6679:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6683:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"6679:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56652,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6669:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:49:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6627:91:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56669,"nodeType":"IfStatement","src":"6623:616:99","trueBody":{"id":56668,"nodeType":"Block","src":"6720:519:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000","id":56661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6789:389:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7201:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56662,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7201:6:99","typeDescriptions":{}}},"id":56664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56665,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7200:10:99","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":56659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6757:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6761:6:99","memberName":"decode","nodeType":"MemberAccess","src":"6757:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6757:471:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56667,"nodeType":"Return","src":"6734:494:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56673,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"7279:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56671,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7262:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7266:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"7262:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56670,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7252:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7252:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":56679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7321:21:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":56677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7304:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7308:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"7304:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7304:39:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56676,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7294:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7294:50:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7252:92:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56693,"nodeType":"IfStatement","src":"7248:617:99","trueBody":{"id":56692,"nodeType":"Block","src":"7346:519:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000","id":56685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"7415:389:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7827:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56686,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7827:6:99","typeDescriptions":{}}},"id":56688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7827:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56689,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7826:10:99","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":56683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7383:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7387:6:99","memberName":"decode","nodeType":"MemberAccess","src":"7383:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7383:471:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56691,"nodeType":"Return","src":"7360:494:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56697,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"7905:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56695,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7888:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7892:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"7888:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_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":"7888:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56694,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7878:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7878:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":56703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7947:22:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":56701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7930:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7934:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"7930:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7930:40:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56700,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7920:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7920:51:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7878:93:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56717,"nodeType":"IfStatement","src":"7874:554:99","trueBody":{"id":56716,"nodeType":"Block","src":"7973:455:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000","id":56709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8042:325:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8390:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56710,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8390:6:99","typeDescriptions":{}}},"id":56712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8390:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8389:10:99","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":56707,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8010:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8014:6:99","memberName":"decode","nodeType":"MemberAccess","src":"8010:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8010:407:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56715,"nodeType":"Return","src":"7987:430:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56721,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"8468:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56719,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8451:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8455:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"8451:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8451:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56718,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8441:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8441:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":56727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8510:20:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":56725,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8493:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8497:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"8493:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8493:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56724,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8483:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8483:49:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8441:91:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56741,"nodeType":"IfStatement","src":"8437:424:99","trueBody":{"id":56740,"nodeType":"Block","src":"8534:327:99","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000","id":56733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8603:197:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8823:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56734,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8823:6:99","typeDescriptions":{}}},"id":56736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8823:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8822:10:99","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":56731,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8571:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8575:6:99","memberName":"decode","nodeType":"MemberAccess","src":"8571:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8571:279:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56739,"nodeType":"Return","src":"8548:302:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56745,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"8901:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8884:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8888:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"8884:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8884:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56742,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8874:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8874:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":56751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8943:24:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":56749,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8926:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8930:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"8926:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8926:42:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56748,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8916:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8916:53:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8874:95:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56765,"nodeType":"IfStatement","src":"8870:2732:99","trueBody":{"id":56764,"nodeType":"Block","src":"8971:2631:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000","id":56757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9040:2501:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11564:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11564:6:99","typeDescriptions":{}}},"id":56760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11563:10:99","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":56755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9008:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9012:6:99","memberName":"decode","nodeType":"MemberAccess","src":"9008:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9008:2583:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56763,"nodeType":"Return","src":"8985:2606:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56769,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"11642:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11625:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11629:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"11625:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11625:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56766,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11615:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11615:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":56775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11684:25:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":56773,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11667:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11671:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"11667:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11667:43:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56772,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11657:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11657:54:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11615:96:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56789,"nodeType":"IfStatement","src":"11611:941:99","trueBody":{"id":56788,"nodeType":"Block","src":"11713:839:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000910fd4261000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000","id":56781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"11782:709:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_d12e255f87e33e6c5905bcd78f38408b2bed11a5f784648ce6ebaad7a6ef5c5c","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000910fd4261000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12514:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12514:6:99","typeDescriptions":{}}},"id":56784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"12514:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56785,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12513:10:99","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":56779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11750:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11754:6:99","memberName":"decode","nodeType":"MemberAccess","src":"11750:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:791:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56787,"nodeType":"Return","src":"11727:814:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56793,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"12592:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12575:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12579:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"12575:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12575:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56790,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12565:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12565:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f7250617573654661636574","id":56799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12634:23:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""},"value":"SubnetActorPauseFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8930c946bda7dc899b1731ef5d9677a91a01915b0a1a3aafb3eff5837146c10a","typeString":"literal_string \"SubnetActorPauseFacet\""}],"expression":{"id":56797,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12617:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12621:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"12617:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12617:41:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56796,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12607:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12607:52:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12565:94:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56813,"nodeType":"IfStatement","src":"12561:555:99","trueBody":{"id":56812,"nodeType":"Block","src":"12661:455:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000038456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000","id":56805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"12730:325:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d6ba79489b28f01e98eae2915ed2fd84ed7ea93e2459106eb77f8c83b511d54","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000038456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13078:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56806,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13078:6:99","typeDescriptions":{}}},"id":56808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13078:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56809,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13077:10:99","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":56803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12698:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12702:6:99","memberName":"decode","nodeType":"MemberAccess","src":"12698:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12698:407:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56811,"nodeType":"Return","src":"12675:430:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56817,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"13156:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13139:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13143:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"13139:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13139:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56814,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13129:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13129:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f725265776172644661636574","id":56823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13198:24:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""},"value":"SubnetActorRewardFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eca47a39650b484a45a6c76d2746822bb1550dd35207154c6e351e607eb32f0","typeString":"literal_string \"SubnetActorRewardFacet\""}],"expression":{"id":56821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13181:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13185:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"13181:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13181:42:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56820,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13171:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13171:53:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13129:95:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56837,"nodeType":"IfStatement","src":"13125:556:99","trueBody":{"id":56836,"nodeType":"Block","src":"13226:455:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af600000000000000000000000000000000000000000000000000000000","id":56829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13295:325:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_985a3e73404219bab8242b91693c760d81162fa90667580bf94d46c13d777ac5","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af600000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13643:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56830,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13643:6:99","typeDescriptions":{}}},"id":56832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13643:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56833,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13642:10:99","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":56827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13263:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13267:6:99","memberName":"decode","nodeType":"MemberAccess","src":"13263:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13263:407:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56835,"nodeType":"Return","src":"13240:430:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56841,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"13721:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56839,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13704:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13708:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"13704:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56838,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13694:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13694:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f72436865636b706f696e74696e674661636574","id":56847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13763:31:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""},"value":"SubnetActorCheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5cdc6f26ceaf34bd367eed7d26f8a0b5a655225312765a92d62636379ca7900","typeString":"literal_string \"SubnetActorCheckpointingFacet\""}],"expression":{"id":56845,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13746:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13750:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"13746:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13746:49:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56844,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13736:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13736:60:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13694:102:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56861,"nodeType":"IfStatement","src":"13690:563:99","trueBody":{"id":56860,"nodeType":"Block","src":"13798:455:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000032681193600000000000000000000000000000000000000000000000000000000b9ee2bb900000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13867:325:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b4663f5103ac4ffe25bdbc4d7278e2758b4b5c29cdba1696b065d0bc11cc7b1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000032681193600000000000000000000000000000000000000000000000000000000b9ee2bb900000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14215:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56854,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14215:6:99","typeDescriptions":{}}},"id":56856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14215:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14214:10:99","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":56851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13835:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13839:6:99","memberName":"decode","nodeType":"MemberAccess","src":"13835:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13835:407:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56859,"nodeType":"Return","src":"13812:430:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56865,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"14293:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14276:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14280:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"14276:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14276:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56862,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14266:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14266:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":56871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14335:21:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":56869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14318:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14322:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"14318:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14318:39:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56868,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14308:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14308:50:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14266:92:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56885,"nodeType":"IfStatement","src":"14262:425:99","trueBody":{"id":56884,"nodeType":"Block","src":"14360:327:99","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000","id":56877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14429:197:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14649:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56878,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14649:6:99","typeDescriptions":{}}},"id":56880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14649:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56881,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14648:10:99","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":56875,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14397:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14401:6:99","memberName":"decode","nodeType":"MemberAccess","src":"14397:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14397:279:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56883,"nodeType":"Return","src":"14374:302:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56889,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"14727:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56887,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14710:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14714:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"14710:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14710:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56886,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14700:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14700:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":56895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14769:19:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":56893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14752:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14756:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"14752:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14752:37:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56892,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14742:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14742:48:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14700:90:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56909,"nodeType":"IfStatement","src":"14696:935:99","trueBody":{"id":56908,"nodeType":"Block","src":"14792:839:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000","id":56901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14861:709:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15593:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15593:6:99","typeDescriptions":{}}},"id":56904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"15593:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56905,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15592:10:99","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":56899,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14829:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14833:6:99","memberName":"decode","nodeType":"MemberAccess","src":"14829:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14829:791:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56907,"nodeType":"Return","src":"14806:814:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56913,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"15671:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56911,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15654:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15658:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"15654:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15654:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56910,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15644:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15644:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"45524332305072657365744669786564537570706c79","id":56919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15713:24:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""},"value":"ERC20PresetFixedSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""}],"expression":{"id":56917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15696:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15700:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"15696:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15696:42:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56916,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15686:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15686:53:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15644:95:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56933,"nodeType":"IfStatement","src":"15640:1196:99","trueBody":{"id":56932,"nodeType":"Block","src":"15741:1095:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000","id":56925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"15810:965:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16798:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16798:6:99","typeDescriptions":{}}},"id":56928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16798:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56929,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16797:10:99","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":56923,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15778:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15782:6:99","memberName":"decode","nodeType":"MemberAccess","src":"15778:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15778:1047:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56931,"nodeType":"Return","src":"15755:1070:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56937,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"16876:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56935,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16859:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16863:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"16859:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16859:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56934,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16849:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16849:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e747261637446616365744569676874","id":56943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16918:26:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""},"value":"NumberContractFacetEight"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""}],"expression":{"id":56941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16901:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16905:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"16901:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16901:44:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56940,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16891:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16891:55:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16849:97:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56957,"nodeType":"IfStatement","src":"16845:430:99","trueBody":{"id":56956,"nodeType":"Block","src":"16948:327:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17017:197:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17237:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56950,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17237:6:99","typeDescriptions":{}}},"id":56952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"17237:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17236:10:99","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":56947,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16985:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16989:6:99","memberName":"decode","nodeType":"MemberAccess","src":"16985:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16985:279:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56955,"nodeType":"Return","src":"16962:302:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56961,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"17315:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17298:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17302:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"17298:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17298:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56958,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17288:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17288:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e74726163744661636574536576656e","id":56967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17357:26:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""},"value":"NumberContractFacetSeven"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""}],"expression":{"id":56965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17340:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17344:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"17340:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17340:44:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56964,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17330:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17330:55:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17288:97:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56981,"nodeType":"IfStatement","src":"17284:430:99","trueBody":{"id":56980,"nodeType":"Block","src":"17387:327:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17456:197:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17676:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56974,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17676:6:99","typeDescriptions":{}}},"id":56976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"17676:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56977,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17675:10:99","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":56971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17424:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17428:6:99","memberName":"decode","nodeType":"MemberAccess","src":"17424:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17424:279:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":56979,"nodeType":"Return","src":"17401:302:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56985,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"17754:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17737:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17741:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"17737:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56982,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17727:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17727:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"53656c6563746f724c696272617279","id":56991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17796:17:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""},"value":"SelectorLibrary"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""}],"expression":{"id":56989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17779:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17783:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"17779:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17779:35:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56988,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17769:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:46:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17727:88:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57005,"nodeType":"IfStatement","src":"17723:421:99","trueBody":{"id":57004,"nodeType":"Block","src":"17817:327:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000","id":56997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17886:197:99","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":56999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18106:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56998,"name":"bytes4","nodeType":"ElementaryTypeName","src":"18106:6:99","typeDescriptions":{}}},"id":57000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"18106:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":57001,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18105:10:99","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":56995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17854:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17858:6:99","memberName":"decode","nodeType":"MemberAccess","src":"17854:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17854:279:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":57003,"nodeType":"Return","src":"17831:302:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":57018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":57009,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"18184:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":57007,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18167:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18171:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"18167:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":57010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18167:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57006,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18157:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18157:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546573745574696c73","id":57015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18226:11:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""},"value":"TestUtils"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""}],"expression":{"id":57013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18209:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18213:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"18209:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":57016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18209:29:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57012,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18199:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18199:40:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18157:82:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57029,"nodeType":"IfStatement","src":"18153:863:99","trueBody":{"id":57028,"nodeType":"Block","src":"18241:775:99","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000","id":57021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"18310:645:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":57023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18978:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":57022,"name":"bytes4","nodeType":"ElementaryTypeName","src":"18978:6:99","typeDescriptions":{}}},"id":57024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"18978:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":57025,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18977:10:99","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":57019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18278:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18282:6:99","memberName":"decode","nodeType":"MemberAccess","src":"18278:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18278:727:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":57027,"nodeType":"Return","src":"18255:750:99"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":57042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":57033,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56448,"src":"19056:9:99","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":57031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19039:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19043:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"19039:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":57034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19039:27:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57030,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19029:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19029:38:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d6f636b","id":57039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19098:17:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""},"value":"SubnetActorMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a7be4af0a5dea4860ea0029dbca69f11186a4ac0f504b1af3130212819bf19f","typeString":"literal_string \"SubnetActorMock\""}],"expression":{"id":57037,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19081:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19085:12:99","memberName":"encodePacked","nodeType":"MemberAccess","src":"19081:16:99","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":57040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19081:35:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57036,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19071:9:99","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:46:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19029:88:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57053,"nodeType":"IfStatement","src":"19025:1637:99","trueBody":{"id":57052,"nodeType":"Block","src":"19119:1543:99","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":57045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"19188:1413:99","typeDescriptions":{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":57047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20624:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":57046,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20624:6:99","typeDescriptions":{}}},"id":57048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"20624:8:99","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":57049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20623:10:99","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":57043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19156:3:99","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19160:6:99","memberName":"decode","nodeType":"MemberAccess","src":"19156:10:99","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19156:1495:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":56453,"id":57051,"nodeType":"Return","src":"19133:1518:99"}]}},{"expression":{"arguments":[{"hexValue":"53656c6563746f72206e6f7420666f756e64","id":57055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20678:20:99","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":57054,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"20671:6:99","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":57056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:28:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57057,"nodeType":"ExpressionStatement","src":"20671:28:99"}]},"functionSelector":"66e2898c","implemented":true,"kind":"function","modifiers":[],"name":"resolveSelectors","nameLocation":"111:16:99","parameters":{"id":56449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56448,"mutability":"mutable","name":"facetName","nameLocation":"142:9:99","nodeType":"VariableDeclaration","scope":57059,"src":"128:23:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56447,"name":"string","nodeType":"ElementaryTypeName","src":"128:6:99","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127:25:99"},"returnParameters":{"id":56453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56452,"mutability":"mutable","name":"facetSelectors","nameLocation":"190:14:99","nodeType":"VariableDeclaration","scope":57059,"src":"174:30:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":56450,"name":"bytes4","nodeType":"ElementaryTypeName","src":"174:6:99","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":56451,"nodeType":"ArrayTypeName","src":"174:8:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"173:32:99"},"scope":57060,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SelectorLibrary","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[57060],"name":"SelectorLibrary","nameLocation":"80:15:99","scope":57061,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":99} \ No newline at end of file diff --git a/contracts/.out/StorableMsgHelper.sol/StorableMsgHelper.json b/contracts/.out/StorableMsgHelper.sol/StorableMsgHelper.json new file mode 100644 index 000000000..931917ddc --- /dev/null +++ b/contracts/.out/StorableMsgHelper.sol/StorableMsgHelper.json @@ -0,0 +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":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/contracts/.out/Subnet.sol/Subnet.json b/contracts/.out/Subnet.sol/Subnet.json new file mode 100644 index 000000000..09849b762 --- /dev/null +++ b/contracts/.out/Subnet.sol/Subnet.json @@ -0,0 +1 @@ +{"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/contracts/.out/SubnetActorCheckpointingFacet.sol/SubnetActorCheckpointingFacet.json b/contracts/.out/SubnetActorCheckpointingFacet.sol/SubnetActorCheckpointingFacet.json new file mode 100644 index 000000000..c038a5c8f --- /dev/null +++ b/contracts/.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/contracts/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json b/contracts/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json new file mode 100644 index 000000000..97755eb80 --- /dev/null +++ b/contracts/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json @@ -0,0 +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":[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/contracts/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json b/contracts/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json new file mode 100644 index 000000000..10c41f38e --- /dev/null +++ b/contracts/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json @@ -0,0 +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: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/contracts/.out/SubnetActorHandler.sol/SubnetActorHandler.json b/contracts/.out/SubnetActorHandler.sol/SubnetActorHandler.json new file mode 100644 index 000000000..abbe9a5c0 --- /dev/null +++ b/contracts/.out/SubnetActorHandler.sol/SubnetActorHandler.json @@ -0,0 +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":"0x608034610106576001600160401b0390601f6110eb38819003918201601f1916830191848311848410176100e45780849260209460405283398101031261010657516001600160a01b038116908190036101065760018060a01b03198181600f541617600f556010541617601055737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15610106576000809260446040518095819363c88a5e6d60e01b83523060048401526a6b31bffa03c1c535c0000060248401525af180156100fa576100d4575b604051610fdf908161010c8239f35b81116100e45760405238806100c5565b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b600080fdfe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea26469706673582212207032b2fad8867e5ef8cab5d75afce7c666314be61148269436468b4014c2deac64736f6c63430008130033","sourceMap":"601:4115:103:-:0;;;;-1:-1:-1;;;;;601:4115:103;;;;;;;;;;-1:-1:-1;;601:4115:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;601:4115:103;;;;;;;;;;;;;;;;1336:53;601:4115;;;1336:53;601:4115;1399:59;601:4115;;;1399:59;601:4115;;20219:17:6;;;;;;-1:-1:-1;601:4115:103;;17996:59:6;601:4115:103;;17996:59:6;;;;;;;20219:17;;1482:4:103;20219:17:6;;;17996:59;581:17:103;17996:59:6;;;;20219:17;;;;;;;;-1:-1:-1;601:4115:103;;;;;;;;;20219:17:6;601:4115:103;;;;;;20219:17:6;;;;601:4115:103;;;;-1:-1:-1;601:4115:103;;20219:17:6;601:4115:103;17996:59:6;-1:-1:-1;601:4115:103;20219:17:6;601:4115:103;;17996:59:6;-1:-1:-1;17996:59:6;;;;;20219:17;-1:-1:-1;601:4115:103;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea26469706673582212207032b2fad8867e5ef8cab5d75afce7c666314be61148269436468b4014c2deac64736f6c63430008130033","sourceMap":"601:4115:103:-:0;;;;;;;;;;;;;-1:-1:-1;601:4115:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:103;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;601:4115:103;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:103;;601:4115;;;;;;;;;;;;;3389:19;;;;;601:4115;3389:19;;;;;;;;;;;601:4115;1220:14:3;;;3418:12:103;1220:14:3;601:4115:103;3418:35;;;;;601:4115;;;;;;1220:14:3;;;;;;;3418:35:103;;;;;;;;;;;;;601:4115;1220:14:3;;3418:12:103;1220:14:3;601:4115:103;3463:32;;;;;;601:4115;;-1:-1:-1;;;3463:32:103;;601:4115;;;;;;;;;3463:32;;;;;;;;601:4115;1220:14:3;;3541:44:103;1220:14:3;3506:25:103;1220:14:3;3506:25:103;1220:14:3;3506:25:103;:::i;:::-;;1220:14:3;601:4115:103;;3541:23;601:4115;;;;1220:14:3;;;3541:44:103;:::i;:::-;1220:14:3;;601:4115:103;;3463:32;;;;:::i;:::-;601:4115;;3463:32;;;;601:4115;;;;3463:32;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;3463:32:103;601:4115;;;3418:35;;;;:::i;:::-;601:4115;;3418:35;;;;;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;3389:19:103;;;;:::i;:::-;601:4115;;3389:19;;;;601:4115;;;;;;;;-1:-1:-1;;601:4115:103;;;;;-1:-1:-1;;;;;601:4115:103;;;;;;;;;;;;;;1139:60;601:4115;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:103;;;;;;;:::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:103;;601:4115;;;;;;;;;;;;;3779:19;;;;;601:4115;3779:19;;;;;;;;601:4115;1220:14:3;;;;;3808:12:103;1220:14:3;601:4115:103;3808:28;;;;;601:4115;;;;;;1220:14:3;;;;;;;3808:28:103;;;;;;601:4115;3808:28;;;;;;;;;;;601:4115;1220:14:3;;3808:12:103;1220:14:3;601:4115:103;3846:32;;;;;;601:4115;;-1:-1:-1;;;3846:32:103;;601:4115;;;;;;;;;3846:32;;;;;;;;601:4115;1220:14:3;;3926:46:103;1220:14:3;3889:27:103;1220:14:3;3889:27:103;1220:14:3;3889:27:103;:::i;:::-;;1220:14:3;601:4115:103;;3926:25;601:4115;;;;1220:14:3;;;3926:46:103;:::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:103;;1220:14:3;;;;3779:19:103;601:4115;;;;;;;;;;;;;;;;;;;1206:30;601:4115;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:103;;;;;-1:-1:-1;;;;;601:4115:103;;;;;;;;;;;;;;1075:58;601:4115;;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:103;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;601:4115:103;;;;;-1:-1:-1;601:4115:103;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;601:4115:103;;;;;;;;;:::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:103;;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:103;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3030:433:100;601:4115:103;;;;;;;;;;;;;;;;;3156:2:100;601:4115:103;;;;;;;;3139:20:100;601:4115:103;;3174:1:100;601:4115:103;;;;;;-1:-1:-1;;;;;;601:4115:103;-1:-1:-1;;601:4115:103;;;;3169:21:100;;601:4115:103;;;3169:21:100;601:4115:103;;-1:-1:-1;;601:4115:103;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;601:4115:103;;;;3305:10:100;;3174:1;;;3300:91;-1:-1:-1;;601:4115:103;;3432:21:100;;;-1:-1:-1;;;;;601:4115:103;;3030:433:100;-1:-1:-1;;;;3030:433:100:o;3334:3::-;601:4115:103;;3317:15:100;;;;;3373:7;;;;;:::i;:::-;601:4115:103;;;;;;;;;;;3353:27:100;;;;;;;:::i;:::-;;601:4115:103;;;;;;;;3305:10:100;;601:4115:103;-1:-1:-1;;;601:4115:103;;;;;;;;;-1:-1:-1;;;601:4115:103;;;;;;;;3317:15:100;;;601:4115:103;-1:-1:-1;;;601:4115:103;;;;;;;;2093:267;2203:16;601:4115;2242:11;;2238:59;;601:4115;;;;;;;;;;;;;2203:16;-1:-1:-1;601:4115:103;;-1:-1:-1;601:4115:103;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2093:267;:::o;601:4115::-;;;;;;;-1:-1:-1;601:4115:103;;;;;;;;;;;;2238:59;2269:17;;-1:-1:-1;2269:17:103;:::o;601:4115::-;;;;2576:16;601:4115;;;;;;;;;;;2576:16;-1:-1:-1;601:4115:103;;;-1:-1:-1;601:4115:103;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;-1:-1:-1;601:4115:103;;;;;;;;;;1220:14:3;;;601:4115:103;;;;;;1220:14:3;;;;;;;;;;;601:4115:103;1220:14:3;;;;;;;601:4115:103;;;;;;1220:14:3;;;:::o;:::-;601:4115:103;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;601:4115:103;;;;;;;;;;;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:103;;601:4115;;;;;;;;;;;;;2919:19;;;;;601:4115;2919:19;;;;;;;;2614:557;1220:14:3;;;;;2948:12:103;1220:14:3;601:4115:103;2948:43;;;;;1220:14:3;601:4115:103;;;;;;1220:14:3;;;;;;;;;2948:43:103;;601:4115;2919:19;2948:43;;1220:14:3;601:4115:103;1220:14:3;;;;:::i;:::-;2948:43:103;;;;;;;;;;;;;2614:557;1220:14:3;;2948:12:103;1220:14:3;601:4115:103;3001:32;;;;;601:4115;;2919:19;601:4115;;1220:14:3;;;;;;;3001:32:103;;;;;;;;;;2614:557;1220:14:3;3079:44:103;1220:14:3;8399:50:36;1220:14:3;;3044:25:103;1220:14:3;3044:25:103;1220:14:3;3044:25:103;:::i;:::-;;1220:14:3;601:4115:103;;;3079:23;601:4115;;;1220:14:3;;;3079:44:103;:::i;:::-;1220:14:3;;8399:50:36;:::i;:::-;;2614:557:103:o;3001:32::-;;;;;:::i;:::-;601:4115;;3001:32;;;601:4115;;;;3001:32;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;2948:43:103;;;;:::i;:::-;601:4115;;2948:43;;;;;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;2919:19:103;;;;;;;;:::i;:::-;;;;;;;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;2671:44:103;2698:7;;;;:::o;2680:190:13:-;2798:19;2680:190;2798:19;:::i;:::-;601:4115:103;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;601:4115:103;;;;;;9924:54:13;;679:42;601:4115:103;9924:54:13;;;;;;;;601:4115:103;9924:54:13;;;679:42;;;;;;:::i;:::-;;;;;601:4115:103;9924:54:13;601:4115:103;;9924:54:13;;;;;;:::i;:::-;9887:92;;679:42;9887:92;;;;;:::i;1411:1263::-;871:8:103;;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:103;;;;;;;1220:14:3;601:4115:103;;2422:8:13;;;2418:24;;-1:-1:-1;;;601:4115:103;;;;;;;2456:22:13;2316:352;1411:1263::o;601:4115:103:-;-1:-1:-1;;;601:4115:103;;;;;;;;2418:24:13;2432:10;;;;:::o;601:4115:103:-;-1:-1:-1;;;601:4115:103;;;;;;;;2316:352:13;;;;;;1411:1263::o;2138:82::-;601:4115:103;;;;;;;;;;2190:30:13;;:::o;2142:46::-;601:4115:103;;;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:103;;;;:::i;:::-;;;;;;;;:::i;:::-;;;679:42:13;-1:-1:-1;679:42:13;;;;:::o;:::-;601:4115:103;679:42:13;:::o;601:4115:103:-;3133:16;601:4115;;;;;;3133:16;-1:-1:-1;601:4115:103;;;;-1:-1:-1;601:4115:103;:::o;2215:404:36:-;-1:-1:-1;601:4115:103;;;4352:12:36;601:4115:103;;;;;1220:14:3;601:4115:103;;3133:16;601:4115;;;;;;;;;;;;4352:12:36;601:4115:103;;;3133:16;601:4115;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3133:16;601:4115;;;;4352:12:36;601:4115:103;;;1220:14:3;4352:12:36;2548:11;:::o;601:4115:103:-;-1:-1:-1;;;601:4115:103;;;;;;;;2294:319:36;2590:12;;;:::o;3985:545:103:-;4065:35;3985:545;4065:35;:::i;:::-;4135:1;;;-1:-1:-1;;;;;601:4115:103;;;4114:23;;4110:70;;601:4115;;;;4207:11;601:4115;;;4207:50;601:4115;;;;1220:14:3;;;;;;;4207:50:103;;;;;;601:4115;4207:50;;;;;;;;;;;3985:545;601:4115;;;4268:19;;;;;601:4115;;;;;1220:14:3;;;;;;;4268:19:103;;;4207:50;4268:19;;601:4115;4268:19;;;;;;;;3985:545;1220:14:3;;;;4297:12:103;1220:14:3;601:4115:103;4297:20;;;;;601:4115;;;4207:50;601:4115;;1220:14:3;;;;;;;4297:20:103;;;;;;;;;;;;;3985:545;1220:14:3;;4297:12:103;1220:14:3;601:4115:103;4327:32;;;;;601:4115;;4207:50;601:4115;;1220:14:3;;;;;;;4327:32:103;;;;;;;;;;3985:545;8720:53:36;;4469:27:103;8720:53:36;;;;;;;;:::i;:::-;;601:4115:103;;4414:25;4207:50;601:4115;;1220:14:3;4469:27:103;1220:14:3;4469:27:103;:::i;:::-;;1220:14:3;3985:545:103;:::o;4327:32::-;;;;;:::i;:::-;601:4115;;4327:32;;;;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;4297:20:103;;;;:::i;:::-;601:4115;;4297:20;;;;;601:4115;;1220:14:3;601:4115:103;;1220:14:3;;;;4268:19:103;;;;;;;:::i;:::-;;;;;4207:50;;;;;;;;;;;;;;;;;;:::i;:::-;;;601:4115;;;;;4207:50;;;;601:4115;;;;4207:50;;;-1:-1:-1;4207:50:103;;4110:70;-1:-1:-1;4153:16:103;;-1:-1:-1;;4153:16:103:o;2787:1388:36:-;-1:-1:-1;601:4115:103;;;2990:12:36;601:4115:103;;;;;1220:14:3;-1:-1:-1;;601:4115:103;3024:15:36;;;;-1:-1:-1;;601:4115:103;;;;;;;;;4370:16;601:4115;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;601:4115:103;;;4370:16;601:4115;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4370:16;601:4115;;;2990:12:36;601:4115:103;;;;;;2990:12:36;4104:11;:::o;601:4115:103:-;-1:-1:-1;;;601:4115:103;;;;;;;;3502:398:36;601:4115:103;3572:22:36;3694:26;3572:22;;:::i;:::-;601:4115:103;;;;;;3694:26:36;;;;:::i;601:4115:103:-;;;;;2990:12:36;601:4115:103;;;;;1220:14:3;3502:398:36;;;;;601:4115:103;-1:-1:-1;;;601:4115:103;;4370:16;601:4115;;;;;3020:1149:36;4146:12;;;:::o;4536:143:103:-;4610:26;4536:143;;;;;4610:26;;;;:::i;:::-;;601:4115;;;4536:143::o;601:4115::-;;;-1:-1:-1;;;601:4115:103;;;;;;;;;;;;-1:-1:-1;;;601:4115:103;;;;;;","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":58463,"exportedSymbols":{"CommonBase":[3777],"ETH_SUPPLY":[58023],"EnumerableSet":[35815],"IMulticall3":[30545],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[51235],"SubnetActorHandler":[58462],"SubnetActorMock":[58922],"TestUtils":[57848],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:4671:103","nodes":[{"id":58006,"nodeType":"PragmaDirective","src":"46:23:103","nodes":[],"literals":["solidity","0.8",".19"]},{"id":58007,"nodeType":"ImportDirective","src":"71:32:103","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":58008,"nodeType":"ImportDirective","src":"104:33:103","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":58010,"nodeType":"ImportDirective","src":"138:46:103","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":58009,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58012,"nodeType":"ImportDirective","src":"185:71:103","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":58011,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"193:18:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58014,"nodeType":"ImportDirective","src":"257:86:103","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":51236,"symbolAliases":[{"foreign":{"id":58013,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"265:22:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58016,"nodeType":"ImportDirective","src":"344:64:103","nodes":[],"absolutePath":"test/mocks/SubnetActorMock.sol","file":"../../mocks/SubnetActorMock.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":58923,"symbolAliases":[{"foreign":{"id":58015,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"352:15:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58018,"nodeType":"ImportDirective","src":"409:54:103","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"../../helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":57849,"symbolAliases":[{"foreign":{"id":58017,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"417:9:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58020,"nodeType":"ImportDirective","src":"464:85:103","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":58463,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":58019,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"472:13:103","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58023,"nodeType":"VariableDeclaration","src":"551:47:103","nodes":[],"constant":true,"mutability":"constant","name":"ETH_SUPPLY","nameLocation":"568:10:103","scope":58463,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58021,"name":"uint256","nodeType":"ElementaryTypeName","src":"551:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132395f3539305f303030","id":58022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"581:17:103","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_129590000000000000000000000_by_1","typeString":"int_const 129590000000000000000000000"},"value":"129_590_000"},"visibility":"internal"},{"id":58462,"nodeType":"ContractDefinition","src":"601:4115:103","nodes":[{"id":58033,"nodeType":"UsingForDirective","src":"670:49:103","nodes":[],"global":false,"libraryName":{"id":58030,"name":"EnumerableSet","nameLocations":["676:13:103"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"676:13:103"},"typeName":{"id":58032,"nodeType":"UserDefinedTypeName","pathNode":{"id":58031,"name":"EnumerableSet.AddressSet","nameLocations":["694:13:103","708:10:103"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"694:24:103"},"referencedDeclaration":35528,"src":"694:24:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":58036,"nodeType":"VariableDeclaration","src":"725:36:103","nodes":[],"constant":false,"mutability":"mutable","name":"managerFacet","nameLocation":"749:12:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"},"typeName":{"id":58035,"nodeType":"UserDefinedTypeName","pathNode":{"id":58034,"name":"SubnetActorMock","nameLocations":["725:15:103"],"nodeType":"IdentifierPath","referencedDeclaration":58922,"src":"725:15:103"},"referencedDeclaration":58922,"src":"725:15:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"visibility":"private"},{"id":58039,"nodeType":"VariableDeclaration","src":"767:42:103","nodes":[],"constant":false,"mutability":"mutable","name":"getterFacet","nameLocation":"798:11:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":58038,"nodeType":"UserDefinedTypeName","pathNode":{"id":58037,"name":"SubnetActorGetterFacet","nameLocations":["767:22:103"],"nodeType":"IdentifierPath","referencedDeclaration":51235,"src":"767:22:103"},"referencedDeclaration":51235,"src":"767:22:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"visibility":"private"},{"id":58042,"nodeType":"VariableDeclaration","src":"816:63:103","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"841:27:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58040,"name":"uint256","nodeType":"ElementaryTypeName","src":"816:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":58041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:8:103","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"visibility":"private"},{"id":58045,"nodeType":"VariableDeclaration","src":"1020:49:103","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_validators","nameLocation":"1053:16:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":58044,"nodeType":"UserDefinedTypeName","pathNode":{"id":58043,"name":"EnumerableSet.AddressSet","nameLocations":["1020:13:103","1034:10:103"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1020:24:103"},"referencedDeclaration":35528,"src":"1020:24:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":58049,"nodeType":"VariableDeclaration","src":"1075:58:103","nodes":[],"constant":false,"functionSelector":"a7818a48","mutability":"mutable","name":"ghost_validators_staked","nameLocation":"1110:23:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":58048,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":58046,"name":"address","nodeType":"ElementaryTypeName","src":"1083:7:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1075:27:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":58047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":58053,"nodeType":"VariableDeclaration","src":"1139:60:103","nodes":[],"constant":false,"functionSelector":"c2da0512","mutability":"mutable","name":"ghost_validators_unstaked","nameLocation":"1174:25:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":58052,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":58050,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1139:27:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":58051,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":58055,"nodeType":"VariableDeclaration","src":"1206:30:103","nodes":[],"constant":false,"functionSelector":"b00053cf","mutability":"mutable","name":"ghost_stakedSum","nameLocation":"1221:15:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1206:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":58057,"nodeType":"VariableDeclaration","src":"1242:32:103","nodes":[],"constant":false,"functionSelector":"0a52ee96","mutability":"mutable","name":"ghost_unstakedSum","nameLocation":"1257:17:103","scope":58462,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58056,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":58090,"nodeType":"FunctionDefinition","src":"1281:226:103","nodes":[],"body":{"id":58089,"nodeType":"Block","src":"1326:181:103","nodes":[],"statements":[{"expression":{"id":58070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58063,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"1336:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":58067,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"1375:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":58066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1367:7:103","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58065,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:103","typeDescriptions":{}}},"id":58068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:21:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58064,"name":"SubnetActorMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"1351:15:103","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorMock_$58922_$","typeString":"type(contract SubnetActorMock)"}},"id":58069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:38:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"src":"1336:53:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58071,"nodeType":"ExpressionStatement","src":"1336:53:103"},{"expression":{"id":58079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58072,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58039,"src":"1399:11:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":58076,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"1444:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":58075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1436:7:103","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58074,"name":"address","nodeType":"ElementaryTypeName","src":"1436:7:103","typeDescriptions":{}}},"id":58077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1436:21:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58073,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"1413:22:103","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$51235_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":58078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1413:45:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"src":"1399:59:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":58080,"nodeType":"ExpressionStatement","src":"1399:59:103"},{"expression":{"arguments":[{"arguments":[{"id":58084,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1482:4:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorHandler_$58462","typeString":"contract SubnetActorHandler"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorHandler_$58462","typeString":"contract SubnetActorHandler"}],"id":58083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1474:7:103","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58082,"name":"address","nodeType":"ElementaryTypeName","src":"1474:7:103","typeDescriptions":{}}},"id":58085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1474:13:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58086,"name":"ETH_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58023,"src":"1489:10:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58081,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[7789,7806,7929],"referencedDeclaration":7789,"src":"1469:4:103","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":58087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1469:31:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58088,"nodeType":"ExpressionStatement","src":"1469:31:103"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58060,"mutability":"mutable","name":"_subnetActor","nameLocation":"1312:12:103","nodeType":"VariableDeclaration","scope":58090,"src":"1293:31:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":58059,"nodeType":"UserDefinedTypeName","pathNode":{"id":58058,"name":"SubnetActorDiamond","nameLocations":["1293:18:103"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1293:18:103"},"referencedDeclaration":36615,"src":"1293:18:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"1292:33:103"},"returnParameters":{"id":58062,"nodeType":"ParameterList","parameters":[],"src":"1326:0:103"},"scope":58462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58135,"nodeType":"FunctionDefinition","src":"1726:361:103","nodes":[],"body":{"id":58134,"nodeType":"Block","src":"1794:293:103","nodes":[],"statements":[{"assignments":[58099],"declarations":[{"constant":false,"id":58099,"mutability":"mutable","name":"addr","nameLocation":"1812:4:103","nodeType":"VariableDeclaration","scope":58134,"src":"1804:12:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58098,"name":"address","nodeType":"ElementaryTypeName","src":"1804:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58100,"nodeType":"VariableDeclarationStatement","src":"1804:12:103"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58101,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58093,"src":"1830:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323030","id":58102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:3:103","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1830:8:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":58119,"nodeType":"Block","src":"1913:72:103","statements":[{"expression":{"id":58117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":58111,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58099,"src":"1928:4:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":58112,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1927:8:103","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58115,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58093,"src":"1971:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":58113,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"1938:9:103","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57848_$","typeString":"type(library TestUtils)"}},"id":58114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1948:22:103","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":57571,"src":"1938:32:103","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":58116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1938:36:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"src":"1927:47:103","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58118,"nodeType":"ExpressionStatement","src":"1927:47:103"}]},"id":58120,"nodeType":"IfStatement","src":"1826:159:103","trueBody":{"id":58110,"nodeType":"Block","src":"1840:67:103","statements":[{"expression":{"id":58108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58104,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58099,"src":"1854:4:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58106,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58093,"src":"1893:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58105,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58167,"src":"1861:31:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":58107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:35:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1854:42:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58109,"nodeType":"ExpressionStatement","src":"1854:42:103"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58121,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58099,"src":"1998:4:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":58124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2014:1:103","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":58123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2006:7:103","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58122,"name":"address","nodeType":"ElementaryTypeName","src":"2006:7:103","typeDescriptions":{}}},"id":58125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:10:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1998:18:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58131,"nodeType":"IfStatement","src":"1994:66:103","trueBody":{"id":58130,"nodeType":"Block","src":"2018:42:103","statements":[{"expression":{"expression":{"id":58127,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2039:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2043:6:103","memberName":"sender","nodeType":"MemberAccess","src":"2039:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58097,"id":58129,"nodeType":"Return","src":"2032:17:103"}]}},{"expression":{"id":58132,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58099,"src":"2076:4:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58097,"id":58133,"nodeType":"Return","src":"2069:11:103"}]},"documentation":{"id":58091,"nodeType":"StructuredDocumentation","src":"1513:208:103","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:103","parameters":{"id":58094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58093,"mutability":"mutable","name":"id","nameLocation":"1760:2:103","nodeType":"VariableDeclaration","scope":58135,"src":"1754:8:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58092,"name":"uint8","nodeType":"ElementaryTypeName","src":"1754:5:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1753:10:103"},"returnParameters":{"id":58097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58135,"src":"1785:7:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58095,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1784:9:103"},"scope":58462,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58167,"nodeType":"FunctionDefinition","src":"2093:267:103","nodes":[],"body":{"id":58166,"nodeType":"Block","src":"2176:184:103","nodes":[],"statements":[{"assignments":[58143],"declarations":[{"constant":false,"id":58143,"mutability":"mutable","name":"length","nameLocation":"2194:6:103","nodeType":"VariableDeclaration","scope":58166,"src":"2186:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58142,"name":"uint256","nodeType":"ElementaryTypeName","src":"2186:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58147,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58144,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"2203:16:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2220:6:103","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2203:23:103","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":58146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2203:25:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2186:42:103"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58148,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58143,"src":"2242:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2252:1:103","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2242:11:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58157,"nodeType":"IfStatement","src":"2238:59:103","trueBody":{"id":58156,"nodeType":"Block","src":"2255:42:103","statements":[{"expression":{"arguments":[{"hexValue":"30","id":58153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2284:1:103","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":58152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2276:7:103","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58151,"name":"address","nodeType":"ElementaryTypeName","src":"2276:7:103","typeDescriptions":{}}},"id":58154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:10:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58141,"id":58155,"nodeType":"Return","src":"2269:17:103"}]}},{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58158,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"2313:16:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2330:6:103","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2313:23:103","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":58160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2313:25:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":58164,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58161,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58137,"src":"2339:4:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":58162,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58143,"src":"2346:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:13:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2313:40:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58141,"id":58165,"nodeType":"Return","src":"2306:47:103"}]},"functionSelector":"f2a2870b","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidatorFromSetOrZero","nameLocation":"2102:31:103","parameters":{"id":58138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58137,"mutability":"mutable","name":"seed","nameLocation":"2140:4:103","nodeType":"VariableDeclaration","scope":58167,"src":"2134:10:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58136,"name":"uint8","nodeType":"ElementaryTypeName","src":"2134:5:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2133:12:103"},"returnParameters":{"id":58141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58167,"src":"2167:7:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58139,"name":"address","nodeType":"ElementaryTypeName","src":"2167:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2166:9:103"},"scope":58462,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58178,"nodeType":"FunctionDefinition","src":"2366:120:103","nodes":[],"body":{"id":58177,"nodeType":"Block","src":"2430:56:103","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58172,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"2447:16:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2464:6:103","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2447:23:103","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":58174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2447:25:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":58175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2473:6:103","memberName":"length","nodeType":"MemberAccess","src":"2447:32:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58171,"id":58176,"nodeType":"Return","src":"2440:39:103"}]},"functionSelector":"bc5683e1","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidatorsNumber","nameLocation":"2375:22:103","parameters":{"id":58168,"nodeType":"ParameterList","parameters":[],"src":"2397:2:103"},"returnParameters":{"id":58171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58178,"src":"2421:7:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58169,"name":"uint256","nodeType":"ElementaryTypeName","src":"2421:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2420:9:103"},"scope":58462,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58189,"nodeType":"FunctionDefinition","src":"2492:116:103","nodes":[],"body":{"id":58188,"nodeType":"Block","src":"2559:49:103","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58184,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"2576:16:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2593:6:103","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2576:23:103","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":58186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2576:25:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":58183,"id":58187,"nodeType":"Return","src":"2569:32:103"}]},"functionSelector":"a0758127","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidators","nameLocation":"2501:16:103","parameters":{"id":58179,"nodeType":"ParameterList","parameters":[],"src":"2517:2:103"},"returnParameters":{"id":58183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58189,"src":"2541:16:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58180,"name":"address","nodeType":"ElementaryTypeName","src":"2541:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58181,"nodeType":"ArrayTypeName","src":"2541:9:103","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2540:18:103"},"scope":58462,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58262,"nodeType":"FunctionDefinition","src":"2614:557:103","nodes":[],"body":{"id":58261,"nodeType":"Block","src":"2661:510:103","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58196,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58191,"src":"2675:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2681:1:103","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2675:7:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58201,"nodeType":"IfStatement","src":"2671:44:103","trueBody":{"id":58200,"nodeType":"Block","src":"2684:31:103","statements":[{"functionReturnParameters":58195,"id":58199,"nodeType":"Return","src":"2698:7:103"}]}},{"expression":{"id":58210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58202,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58193,"src":"2724:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58204,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58193,"src":"2739:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":58205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:1:103","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":58206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2750:1:103","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":58207,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58042,"src":"2754:27:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2750:31:103","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":58203,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"2733:5:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":58209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2733:49:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2724:58:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58211,"nodeType":"ExpressionStatement","src":"2724:58:103"},{"assignments":[58213,58215],"declarations":[{"constant":false,"id":58213,"mutability":"mutable","name":"validator","nameLocation":"2802:9:103","nodeType":"VariableDeclaration","scope":58261,"src":"2794:17:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58212,"name":"address","nodeType":"ElementaryTypeName","src":"2794:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58215,"mutability":"mutable","name":"publicKey","nameLocation":"2826:9:103","nodeType":"VariableDeclaration","scope":58261,"src":"2813:22:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58214,"name":"bytes","nodeType":"ElementaryTypeName","src":"2813:5:103","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58220,"initialValue":{"arguments":[{"id":58218,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58191,"src":"2872:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":58216,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57848,"src":"2839:9:103","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57848_$","typeString":"type(library TestUtils)"}},"id":58217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2849:22:103","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":57571,"src":"2839:32:103","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":58219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:36:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2793:82:103"},{"expression":{"arguments":[{"id":58222,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"2891:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58223,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58193,"src":"2902:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58221,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58457,"src":"2886:4:103","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":58224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:23:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58225,"nodeType":"ExpressionStatement","src":"2886:23:103"},{"expression":{"arguments":[{"id":58229,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"2928:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58226,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"2919:2:103","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":58228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2922:5:103","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"2919:8:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2919:19:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58231,"nodeType":"ExpressionStatement","src":"2919:19:103"},{"expression":{"arguments":[{"id":58237,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58215,"src":"2981:9:103","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":58232,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"2948:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2961:4:103","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51606,"src":"2948:17:103","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":58236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":58235,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58193,"src":"2973:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2948:32:103","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":58238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2948:43:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58239,"nodeType":"ExpressionStatement","src":"2948:43:103"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58240,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"3001:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3014:17:103","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58921,"src":"3001:30:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3001:32:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58244,"nodeType":"ExpressionStatement","src":"3001:32:103"},{"expression":{"id":58247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58245,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"3044:15:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58246,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58193,"src":"3063:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3044:25:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58248,"nodeType":"ExpressionStatement","src":"3044:25:103"},{"expression":{"id":58253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58249,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58049,"src":"3079:23:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":58251,"indexExpression":{"id":58250,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"3103:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3079:34:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58193,"src":"3117:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3079:44:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58254,"nodeType":"ExpressionStatement","src":"3079:44:103"},{"expression":{"arguments":[{"id":58258,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58213,"src":"3154:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58255,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"3133:16:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3150:3:103","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"3133:20:103","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":58259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:31:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58260,"nodeType":"ExpressionStatement","src":"3133:31:103"}]},"functionSelector":"bd0fa1b1","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"2623:4:103","parameters":{"id":58194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58191,"mutability":"mutable","name":"id","nameLocation":"2634:2:103","nodeType":"VariableDeclaration","scope":58262,"src":"2628:8:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58190,"name":"uint8","nodeType":"ElementaryTypeName","src":"2628:5:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58193,"mutability":"mutable","name":"amount","nameLocation":"2646:6:103","nodeType":"VariableDeclaration","scope":58262,"src":"2638:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58192,"name":"uint256","nodeType":"ElementaryTypeName","src":"2638:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2627:26:103"},"returnParameters":{"id":58195,"nodeType":"ParameterList","parameters":[],"src":"2661:0:103"},"scope":58462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58319,"nodeType":"FunctionDefinition","src":"3177:415:103","nodes":[],"body":{"id":58318,"nodeType":"Block","src":"3225:367:103","nodes":[],"statements":[{"expression":{"id":58277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58269,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"3235:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58271,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"3250:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":58272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3258:1:103","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":58273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3261:1:103","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":58274,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58042,"src":"3265:27:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3261:31:103","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":58270,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3244:5:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":58276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:49:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3235:58:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58278,"nodeType":"ExpressionStatement","src":"3235:58:103"},{"assignments":[58280],"declarations":[{"constant":false,"id":58280,"mutability":"mutable","name":"validator","nameLocation":"3311:9:103","nodeType":"VariableDeclaration","scope":58318,"src":"3303:17:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58279,"name":"address","nodeType":"ElementaryTypeName","src":"3303:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58284,"initialValue":{"arguments":[{"id":58282,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58264,"src":"3342:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58281,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58135,"src":"3323:18:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":58283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:22:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3303:42:103"},{"expression":{"arguments":[{"id":58286,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58280,"src":"3360:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58287,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"3371:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58285,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58457,"src":"3355:4:103","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":58288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:23:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58289,"nodeType":"ExpressionStatement","src":"3355:23:103"},{"expression":{"arguments":[{"id":58293,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58280,"src":"3398:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58290,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3389:2:103","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":58292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3392:5:103","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3389:8:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3389:19:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58295,"nodeType":"ExpressionStatement","src":"3389:19:103"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":58296,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"3418:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3431:5:103","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":51670,"src":"3418:18:103","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":58300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":58299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"3444:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3418:33:103","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":58301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:35:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58302,"nodeType":"ExpressionStatement","src":"3418:35:103"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58303,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"3463:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3476:17:103","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58921,"src":"3463:30:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3463:32:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58307,"nodeType":"ExpressionStatement","src":"3463:32:103"},{"expression":{"id":58310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58308,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"3506:15:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58309,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"3525:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3506:25:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58311,"nodeType":"ExpressionStatement","src":"3506:25:103"},{"expression":{"id":58316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58312,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58049,"src":"3541:23:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":58314,"indexExpression":{"id":58313,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58280,"src":"3565:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3541:34:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58315,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58266,"src":"3579:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3541:44:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58317,"nodeType":"ExpressionStatement","src":"3541:44:103"}]},"functionSelector":"dd752e55","implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"3186:5:103","parameters":{"id":58267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58264,"mutability":"mutable","name":"id","nameLocation":"3198:2:103","nodeType":"VariableDeclaration","scope":58319,"src":"3192:8:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58263,"name":"uint8","nodeType":"ElementaryTypeName","src":"3192:5:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58266,"mutability":"mutable","name":"amount","nameLocation":"3210:6:103","nodeType":"VariableDeclaration","scope":58319,"src":"3202:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3191:26:103"},"returnParameters":{"id":58268,"nodeType":"ParameterList","parameters":[],"src":"3225:0:103"},"scope":58462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58370,"nodeType":"FunctionDefinition","src":"3598:381:103","nodes":[],"body":{"id":58369,"nodeType":"Block","src":"3648:331:103","nodes":[],"statements":[{"expression":{"id":58334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58326,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58323,"src":"3658:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58328,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58323,"src":"3673:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":58329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3681:1:103","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":58330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3684:1:103","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":58331,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58042,"src":"3688:27:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3684:31:103","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":58327,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3667:5:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":58333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:49:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3658:58:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58335,"nodeType":"ExpressionStatement","src":"3658:58:103"},{"assignments":[58337],"declarations":[{"constant":false,"id":58337,"mutability":"mutable","name":"validator","nameLocation":"3734:9:103","nodeType":"VariableDeclaration","scope":58369,"src":"3726:17:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58336,"name":"address","nodeType":"ElementaryTypeName","src":"3726:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58341,"initialValue":{"arguments":[{"id":58339,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58321,"src":"3765:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58338,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58135,"src":"3746:18:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":58340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3746:22:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3726:42:103"},{"expression":{"arguments":[{"id":58345,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58337,"src":"3788:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58342,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3779:2:103","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":58344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3782:5:103","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3779:8:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3779:19:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58347,"nodeType":"ExpressionStatement","src":"3779:19:103"},{"expression":{"arguments":[{"id":58351,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58323,"src":"3829:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58348,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"3808:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3821:7:103","memberName":"unstake","nodeType":"MemberAccess","referencedDeclaration":51742,"src":"3808:20:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":58352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3808:28:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58353,"nodeType":"ExpressionStatement","src":"3808:28:103"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58354,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"3846:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3859:17:103","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58921,"src":"3846:30:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3846:32:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58358,"nodeType":"ExpressionStatement","src":"3846:32:103"},{"expression":{"id":58361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58359,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58057,"src":"3889:17:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58360,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58323,"src":"3910:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3889:27:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58362,"nodeType":"ExpressionStatement","src":"3889:27:103"},{"expression":{"id":58367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58363,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58053,"src":"3926:25:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":58365,"indexExpression":{"id":58364,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58337,"src":"3952:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3926:36:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58366,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58323,"src":"3966:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3926:46:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58368,"nodeType":"ExpressionStatement","src":"3926:46:103"}]},"functionSelector":"b4545b9e","implemented":true,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"3607:7:103","parameters":{"id":58324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58321,"mutability":"mutable","name":"id","nameLocation":"3621:2:103","nodeType":"VariableDeclaration","scope":58370,"src":"3615:8:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58320,"name":"uint8","nodeType":"ElementaryTypeName","src":"3615:5:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58323,"mutability":"mutable","name":"amount","nameLocation":"3633:6:103","nodeType":"VariableDeclaration","scope":58370,"src":"3625:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58322,"name":"uint256","nodeType":"ElementaryTypeName","src":"3625:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3614:26:103"},"returnParameters":{"id":58325,"nodeType":"ParameterList","parameters":[],"src":"3648:0:103"},"scope":58462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58435,"nodeType":"FunctionDefinition","src":"3985:545:103","nodes":[],"body":{"id":58434,"nodeType":"Block","src":"4035:495:103","nodes":[],"statements":[{"assignments":[58378],"declarations":[{"constant":false,"id":58378,"mutability":"mutable","name":"validator","nameLocation":"4053:9:103","nodeType":"VariableDeclaration","scope":58434,"src":"4045:17:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58377,"name":"address","nodeType":"ElementaryTypeName","src":"4045:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58382,"initialValue":{"arguments":[{"id":58380,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58372,"src":"4097:2:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58379,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58167,"src":"4065:31:103","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":58381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4065:35:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4045:55:103"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58383,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4114:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":58386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4135:1:103","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":58385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4127:7:103","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58384,"name":"address","nodeType":"ElementaryTypeName","src":"4127:7:103","typeDescriptions":{}}},"id":58387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4127:10:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4114:23:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58392,"nodeType":"IfStatement","src":"4110:70:103","trueBody":{"id":58391,"nodeType":"Block","src":"4139:41:103","statements":[{"expression":{"id":58389,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4160:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58376,"id":58390,"nodeType":"Return","src":"4153:16:103"}]}},{"assignments":[58394],"declarations":[{"constant":false,"id":58394,"mutability":"mutable","name":"amount","nameLocation":"4198:6:103","nodeType":"VariableDeclaration","scope":58434,"src":"4190:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58393,"name":"uint256","nodeType":"ElementaryTypeName","src":"4190:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58399,"initialValue":{"arguments":[{"id":58397,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4247:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58395,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58039,"src":"4207:11:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$51235","typeString":"contract SubnetActorGetterFacet"}},"id":58396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4219:27:103","memberName":"getTotalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":50963,"src":"4207:39:103","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":58398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4207:50:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4190:67:103"},{"expression":{"arguments":[{"id":58403,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4277:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58400,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4268:2:103","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":58402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4271:5:103","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"4268:8:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4268:19:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58405,"nodeType":"ExpressionStatement","src":"4268:19:103"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58406,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"4297:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4310:5:103","memberName":"leave","nodeType":"MemberAccess","referencedDeclaration":51862,"src":"4297:18:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:20:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58410,"nodeType":"ExpressionStatement","src":"4297:20:103"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58411,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58036,"src":"4327:12:103","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorMock_$58922","typeString":"contract SubnetActorMock"}},"id":58413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4340:17:103","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":58921,"src":"4327:30:103","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:32:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58415,"nodeType":"ExpressionStatement","src":"4327:32:103"},{"expression":{"arguments":[{"id":58419,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4394:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58416,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"4370:16:103","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4387:6:103","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"4370:23:103","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":58420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4370:34:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58421,"nodeType":"ExpressionStatement","src":"4370:34:103"},{"expression":{"id":58426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58422,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58053,"src":"4414:25:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":58424,"indexExpression":{"id":58423,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4440:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4414:36:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58425,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58394,"src":"4453:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4414:45:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58427,"nodeType":"ExpressionStatement","src":"4414:45:103"},{"expression":{"id":58430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58428,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58057,"src":"4469:17:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":58429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58394,"src":"4490:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4469:27:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58431,"nodeType":"ExpressionStatement","src":"4469:27:103"},{"expression":{"id":58432,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58378,"src":"4514:9:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58376,"id":58433,"nodeType":"Return","src":"4507:16:103"}]},"functionSelector":"2cb54025","implemented":true,"kind":"function","modifiers":[],"name":"leave","nameLocation":"3994:5:103","parameters":{"id":58373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58372,"mutability":"mutable","name":"id","nameLocation":"4006:2:103","nodeType":"VariableDeclaration","scope":58435,"src":"4000:8:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58371,"name":"uint8","nodeType":"ElementaryTypeName","src":"4000:5:103","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3999:10:103"},"returnParameters":{"id":58376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58435,"src":"4026:7:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58374,"name":"address","nodeType":"ElementaryTypeName","src":"4026:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4025:9:103"},"scope":58462,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58457,"nodeType":"FunctionDefinition","src":"4536:143:103","nodes":[],"body":{"id":58456,"nodeType":"Block","src":"4587:92:103","nodes":[],"statements":[{"assignments":[58443,null],"declarations":[{"constant":false,"id":58443,"mutability":"mutable","name":"s","nameLocation":"4603:1:103","nodeType":"VariableDeclaration","scope":58456,"src":"4598:6:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58442,"name":"bool","nodeType":"ElementaryTypeName","src":"4598:4:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":58450,"initialValue":{"arguments":[{"hexValue":"","id":58448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4633:2:103","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":58444,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58437,"src":"4610:2:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4613:4:103","memberName":"call","nodeType":"MemberAccess","src":"4610:7:103","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":58447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":58446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58439,"src":"4625:6:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4610:22:103","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":58449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4610:26:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4597:39:103"},{"expression":{"arguments":[{"id":58452,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58443,"src":"4654:1:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061792829206661696c6564","id":58453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4657:14:103","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":58451,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4646:7:103","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4646:26:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58455,"nodeType":"ExpressionStatement","src":"4646:26:103"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pay","nameLocation":"4545:4:103","parameters":{"id":58440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58437,"mutability":"mutable","name":"to","nameLocation":"4558:2:103","nodeType":"VariableDeclaration","scope":58457,"src":"4550:10:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58436,"name":"address","nodeType":"ElementaryTypeName","src":"4550:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58439,"mutability":"mutable","name":"amount","nameLocation":"4570:6:103","nodeType":"VariableDeclaration","scope":58457,"src":"4562:14:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58438,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4549:28:103"},"returnParameters":{"id":58441,"nodeType":"ParameterList","parameters":[],"src":"4587:0:103"},"scope":58462,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":58461,"nodeType":"FunctionDefinition","src":"4685:29:103","nodes":[],"body":{"id":58460,"nodeType":"Block","src":"4712:2:103","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58458,"nodeType":"ParameterList","parameters":[],"src":"4692:2:103"},"returnParameters":{"id":58459,"nodeType":"ParameterList","parameters":[],"src":"4712:0:103"},"scope":58462,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":58024,"name":"CommonBase","nameLocations":["632:10:103"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"632:10:103"},"id":58025,"nodeType":"InheritanceSpecifier","src":"632:10:103"},{"baseName":{"id":58026,"name":"StdCheats","nameLocations":["644:9:103"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"644:9:103"},"id":58027,"nodeType":"InheritanceSpecifier","src":"644:9:103"},{"baseName":{"id":58028,"name":"StdUtils","nameLocations":["655:8:103"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"655:8:103"},"id":58029,"nodeType":"InheritanceSpecifier","src":"655:8:103"}],"canonicalName":"SubnetActorHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58462,12691,8180,7501,3777],"name":"SubnetActorHandler","nameLocation":"610:18:103","scope":58463,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":103} \ No newline at end of file diff --git a/contracts/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json b/contracts/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json new file mode 100644 index 000000000..778f64835 --- /dev/null +++ b/contracts/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json @@ -0,0 +1 @@ +{"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/contracts/.out/SubnetActorMock.sol/SubnetActorMock.json b/contracts/.out/SubnetActorMock.sol/SubnetActorMock.json new file mode 100644 index 000000000..1cc8feb19 --- /dev/null +++ b/contracts/.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:105:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":337,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611a705750806310fd4261146118ff57806326811936146116ec5780632e17de78146116bf578063350a14bf1461168c5780633a4b66f1146115b05780633f4ba83a1461153857806341c0e1b5146114a75780634c860af6146114535780634e71d92d146112bf5780635c975abb1461128f5780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614f8983398151915260018154146101a657806001839255610133612049565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611b52565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611bf3565b906024356001600160401b03811161087e5761020c903690600401611bf3565b916044356001600160401b03811161087a5761022c903690600401611bf3565b90946102366143d0565b61023e614097565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b61029761029182888861417e565b90614394565b6001600160a01b036102b26102ad8486896141bf565b611ec3565b166001600160a01b03909116036105135761031c6102d46102ad8385886141bf565b6102df83898961417e565b6102ed85888d9694966141bf565b356103086040519586936040602086015260608501916139db565b90604083015203601f198101845283611b80565b6001600160401b03601c541660405161033481611b65565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612074565b61037081612074565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612094565b60018601612187565b602090601f8311600114610476579282600080516020614f4983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b03610421826122ac565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190614159565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614f498339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806105888161420a565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611b52565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a61029182878661417e565b6001600160a01b03919082806106246102ad858d8d6141bf565b169116036105135761064261063d6102ad838b8b6141bf565b613047565b610812576106d99161066c61065b6102ad848c8c6141bf565b610666848a8961417e565b916142b7565b61068f61067d6102ad848c8c6141bf565b61068884878a6141bf565b359061279d565b61069d6102ad838b8b6141bf565b906106a98386896141bf565b35906106b6848a8961417e565b9590604051936106c585611b65565b845260209683888601961686523691611bbc565b9260408301938452600154600160401b8110156104fd5780600161070092016001556141cf565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e826107488554612094565b85612187565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6108626108416140dc565b60405163015538b160e01b8152602060048201529182916024830190614159565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614f8983398151915260018154146101a6578060018392556108bd612049565b6108c56143d0565b6108cd614bc1565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611c62565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611cb8565b9060243590613be7565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a906122c4565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611bf3565b91906044356001600160401b038111610d9257610a0e903690600401611bf3565b91610a17612049565b60055494600b5495610a298782611d37565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e12565b0393610a66601f1995868101835282611b80565b5190209882611d37565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611c62565b933691611cb8565b91613be7565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e63565b16936001600160401b03199485845416178355610b056001926024848601930190611e77565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e63565b16908254161790556024600435013582526022602052610b9e604083203390611fc4565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e12565b03925af180156105df57610c03575b5050610bfe61094a91611e63565b6122c4565b610c0c90611b52565b610882578138610bf0565b84959697506020610c2b8495969394611ec3565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611eac565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b80565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fc4565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf614097565b610db7612049565b600080516020614f69833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614f8983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e71828254612831565b9055610e7f81600254612831565b6002553384526003602052604084205415610e9b575b33613f36565b610ea433613fb0565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614f8983398151915254146101a6576001600080516020614f8983398151915255610f5b612049565b610f636143d0565b60ff60125460081c1680611282575b341561127057336000908152601560205260409020600201546111fb5760418260040135036111e957336001600160a01b03610fb5600485013560248601614394565b160361051357610ff857806024610fd292600401359101336142b7565b610fdc34336143f1565b610fe4614825565b80600080516020614f898339815191525580f35b61100a36826004013560248401611bbc565b6001600160401b03601c5416906040519061102482611b65565b600282526020820190815233604083015282600052601d602052604060002090825161104f81612074565b61105881612074565b60ff80198454169116178255518051906001600160401b0382116104fd576110878261039f6001860154612094565b602090601f8311600114611161579282600080516020614f4983398151915297959360029361113e9896600092611156575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03611102826122ac565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139db565b9060608301520390a1611151343361460b565b610fe4565b0151905038806110b9565b906001840160005260206000209160005b601f19851681106111d157508360029361113e989693600193600080516020614f498339815191529b9997601f198116106111b8575b505050811b0160018201556110d1565b015160001960f88460031b161c191690553880806111a8565b91926020600181928685015181550194019201611172565b6040516318dca5e960e21b8152600490fd5b61086260405161120a81611b65565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b604051635a78c58160e11b8152600490fd5b61128a614810565b610f72565b50346101b857806003193601126101b857602060ff600080516020614f6983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614f89833981519152828154146101a6578281556112f5612049565b336000908152601f602052604090209283549061ffff9081831692831561144157829060101c16918391808795818a01915b6113bb575b5050508661139d937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113a4575b6113858133613f36565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561137b565b90919394838116968288101561143857876000526020809185825260406000206040516113e781611b37565b8982549283835201549384910152431061142d578594938896889461140e86958a95611d37565b9c60005252600082604082208281550155011696600019011694611327565b98505050949361132c565b9650949361132c565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561088257611474612049565b600e546001600160a01b031633036114955761094a90602435600435614da5565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114c06143d0565b61ffff6114d68160195416826016541690612787565b16611526576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b857611551614097565b600080516020614f69833981519152805460ff81161561159e5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115c4612049565b6115cc6143d0565b6115d4614810565b341561127057336000908152601560205260409020600201541561161b5760125460081c60ff166116115761160934336143f1565b61094a614825565b61094a343361460b565b61086260405161162a81611b65565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190614159565b50346101b85760203660031901126101b8576004356001600160401b03811681036116ba5761094a906122c4565b600080fd5b50346101b85760203660031901126101b8576116d9612049565b6116e16143d0565b61094a6004356148f1565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d925761173a903690600401611bf3565b91906044358581116118fb57611754903690600401611bf3565b91602486013596600654968789106118b057604401906117748287611e77565b919050600954168091116118e95761178c8287611e77565b90501415806118c2575b6118b0576117a49085611e77565b90501561189e57879460405160208101906117d1816117c38985613a65565b03601f198101835282611b80565b51902096880361180257505050505050600754146117ed575080f35b81526023602052610d4b604082203390611fc4565b61181c9392610a9388969893610a9b939a989a3691611c62565b80602060405161182b81611b37565b8481520152816006556007558252602360205261184c604083203390611fc4565b50600e546001600160a01b031690813b156101a257829161188391604051948580948193630bed761560e01b835260048301613a65565b03925af180156105df57611895575080f35b61094a90611b52565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118d55788061515611796565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d57611945903690602481600401359101611bbc565b9261194e612049565b3383526017825261ffff60408420541615611a5857835115611a46573383526024825260408320918451918211611a325761198d826107488554612094565b80601f83116001146119ce57508394829394926119c3575b50508160011b916000199060031b1c19161790555b610d4b33611f5b565b0151905038806119a5565b90601f198316958486528286209286905b888210611a1a57505083600195969710611a01575b505050811b0190556119ba565b015160001960f88460031b161c191690553880806119f4565b806001859682949686015181550195019301906119df565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611b28575060ff60125460081c16610ebb573381526003602052604081205415611acf575b338152600360205260408120611abb348254611d37565b9055611ac934600254611d37565b60025580f35b600454600160401b811015611b1457611af1816001611b0f9301600455611ed7565b81546001600160a01b0360039290921b91821b19163390911b179055565b611aa4565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611bc882611ba1565b91611bd66040519384611b80565b8294818452818301116116ba578281602093846000960137010152565b9181601f840112156116ba578235916001600160401b0383116116ba576020808501948460051b0101116116ba57565b35906001600160401b03821682036116ba57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b03821682036116ba57565b9291611c6d82611c37565b91611c7b6040519384611b80565b829481845260208094019160051b81019283116116ba57905b828210611ca15750505050565b838091611cad84611c4e565b815201910190611c94565b92919092611cc584611c37565b91611cd36040519384611b80565b829480845260208094019060051b8301928284116116ba5780915b848310611cfd57505050505050565b82356001600160401b0381116116ba57820184601f820112156116ba578691611d2c8683858095359101611bbc565b815201920191611cee565b91908201809211611d4457565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156116ba570190565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba578160051b360383136116ba57565b60408201916001600160401b03611db883611c23565b1681526060611dcc60209384810190611d6e565b839195604086839601525201929160005b828110611deb575050505090565b909192938280600192838060a01b03611e0389611c4e565b16815201950193929101611ddd565b6020815260806001600160401b03611e5c6060611e42611e328780611d5a565b85602088015260a0870190611da2565b956020810135604087015260408101358287015201611c23565b1691015290565b356001600160401b03811681036116ba5790565b903590601e19813603018212156116ba57018035906001600160401b0382116116ba57602001918160051b360383136116ba57565b818110611eb7575050565b60008155600101611eac565b356001600160a01b03811681036116ba5790565b600454811015611f0e5760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f0e5760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fbf57602554600160401b811015611b14579082611fab611f9484600160409601602555611f24565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461204357845494600160401b86101561202f576001860180825586101561201b57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60ff600080516020614f69833981519152541661206257565b60405163d93c066560e01b8152600490fd5b6004111561207e57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156120c4575b60208310146120ae57565b634e487b7160e01b600052602260045260246000fd5b91607f16916120a3565b90600092918054916120df83612094565b9182825260019384811690816000146121415750600114612101575b50505050565b90919394506000526020928360002092846000945b83861061212d5750505050010190388080806120fb565b805485870183015294019385908201612116565b9294505050602093945060ff191683830152151560051b010190388080806120fb565b60005b8381106121775750506000910152565b8181015183820152602001612167565b9190601f811161219657505050565b6121c2926000526020600020906020601f840160051c830193106121c4575b601f0160051c0190611eac565b565b90915081906121b5565b908082146122a8576121e08154612094565b906001600160401b0382116104fd578190612205826121ff8654612094565b86612187565b600090601f831160011461223c57600092612231575b50508160011b916000199060031b1c1916179055565b01549050388061221b565b81526020808220858352818320935090601f1985169083905b82821061228f575050908460019594939210612276575b505050811b019055565b015460001960f88460031b161c1916905538808061226c565b8495819295850154815560018091019601940190612255565b5050565b9060016001600160401b0380931601918211611d4457565b601c546001600160401b03828116929080831684106122ef5760405163040aaa0560e11b8152600490fd5b808360401c1684106120fb5780604093841c165b84828216111561236a5750509160209161233d7f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946122ac565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612388826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123ad81612074565b80850361241f57505060036123de60016123e494959697019260018060a01b03166000526015602052604060002090565b016121ce565b612401816001600160401b0316600052601d602052604060002090565b9160009081845560019361241685820161283e565b01550116612303565b9091945061242c81612074565b6003918183036125ca5750508751936124548561244d816001809a016120ce565b0386611b80565b84518501916020928a878583019203126116ba57838701518981116116ba5787019681603f890112156116ba5787858d9901519261249d61249485611ba1565b9a519a8b611b80565b838a528d84830101116116ba578c926124bb9184888c019101612164565b015192816124db8460018060a01b03166000526015602052604060002090565b01918751918a83116125b5578a986124fd846124f78754612094565b87612187565b81601f851160011461254257506125329798999a8493928492600095612537575b50501b92600019911b1c191617905561279d565b6123e4565b01519350388061251e565b91601f9b9493919b1984169b866000528c84600020946000915b821061259a575050846125329a9b9c9d10612580575b50505050811b01905561279d565b01519060f884600019921b161c1916905538808080612572565b8383015186558f9d509487019492830192908101908e61255c565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125e68561244d8160018095016120ce565b602080868051810103126116ba5781818c9701519561260481612074565b036127295784906126158285612887565b601e546126229043611d37565b9287519061262f82611b37565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061267291612787565b169c60009d8e5282870188528d20925183555191015561269190612774565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af190811561271e5750908493929161270f575b506123e4565b61271890611b52565b38612709565b8751903d90823e3d90fd5b50508293509161273991926127e1565b600e541690813b156116ba578651916316989f6f60e21b83528260048160009485945af190811561271e5750908493929161270f57506123e4565b90600161ffff80931601918211611d4457565b91909161ffff80809416911601918211611d4457565b9060018060a01b0382166000526015602052604060002081815491558181146000146127c857505050565b8111156127d8576121c291612916565b6121c291612c5c565b906121c29161282960018060a01b0382169283600052601560205261280e81600160406000200154611d37565b93600052601560205283600160406000200155601454611d37565b601455612916565b91908203918211611d4457565b6128488154612094565b9081612852575050565b81601f60009311600114612864575055565b908083918252612883601f60208420940160051c840160018501611eac565b5555565b906128f46128fc9260018060a01b03811690600082815260156020526128b4856001604084200154612831565b928152601560205260408120600281018481548115908161290d575b5015612901575090826003926128ef948355816001840155550161283e565b612c5c565b601454612831565b601455565b92505060010155612c5c565b905015386128d0565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b47578360135460081c16846016541610612b135761295b613769565b60019283825260188652828a832054168861297582613047565b10612a8d57508152601a85528389822054166129e45750505050506129df7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946129bf83612fd2565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129ed866137bc565b926129f787613047565b935b8186821611612a4f575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129df565b8085612a6e86617fff8f95871c1694858852601b8c5287205416613047565b1015612a875790612a8083928261391b565b90506129f9565b50612a03565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129df95601a91612ac8613461565b835252205416612b05575b612adc846133ec565b612ae583612fd2565b516001600160a01b03928316815292909116602083015281906040820190565b612b0e84613211565b612ad3565b50505050506129df7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946129bf836133ec565b97929150612b588594979695613785565b97612b6285613047565b97612b6c8a61337d565b8460165416905b858116828111612c255782811015612c09575080612b93612b9992612774565b90613719565b9b909b5b8b1115612bbc57612bae908c613882565b612bb78b61337d565b612b73565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129df565b849c919c5260188352612c20858886205416613047565b612b9d565b505050505050506129df91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506129bf565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e96578082526017835287868320541615612e85578415612ddd5750612ca983613785565b97612cb384613047565b985b6001808a83161115612dce5781617fff911c1690818452601885528a612cdf848a87205416613047565b1115612cf457612cef9082613882565b612cb5565b505091939597509193955b6019541615612dc657612d10613769565b60018252601883528581818420541692601b612d2b85613047565b95612d34613777565b600183525220541691612d4683613047565b11612d8d57505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129df565b915091506129df7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612dbe613461565b612ad36130aa565b505050505050565b50509193959750919395612cff565b829450612e117f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996135aa565b8651908152a160195416612e255750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e53613777565b6001835252205416612e79612e6782613047565b92612e706130aa565b6129bf836133ec565b0390a1388080806120fb565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f97575061fffe9193612eb3866137bc565b93612ebd87613047565b9480966001958692831b168160195416925b612f23575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129df565b818116838111612f91578d9084811015612f7557505080612f46612f4c92612774565b90613394565b9890985b881015612f7057612f61908961391b565b612f6a8861337d565b86612ecf565b612ed4565b8652601b8552852054909890612f8c908716613047565b612f50565b50612ed4565b94915050612fcb9194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613211565b51908152a1565b6121c29061304161ffff91612fea8360195416612774565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613047565b90613328565b60ff60135416600381101561207e57600103613078576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d4457565b61ffff80601954169081156131ff57906001906130c981831115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161316391908a61315483613096565b169060195416176019556137e1565b848252808652613177848484205416613047565b95859860028160195416995b613195575b5050505050505050505050565b8181168a81116131f9578a8110156131de575080612f466131b592612774565b9a909a5b8910156131d9576131ca908b61391b565b6131d38a61337d565b87613183565b613188565b859b919b528383526131f4878787205416613047565b6131b9565b50613188565b6040516340d9b01160e01b8152600490fd5b61321a906137bc565b61ffff9081601954169161322e838361391b565b8061323884613096565b1661ffff19601954161760195561324e836137e1565b808216809314613323579161fffe91600091808352601b9060209382855260018060a01b039260409261328e613288868686205416613047565b87613328565b82528086526132a1848484205416613047565b9585986001988997881b168160195416995b6132c4575050505050505050505050565b8181168a81116131f9578a811015613308575080612f466132e492612774565b9a909a5b8910156131d9576132f9908b61391b565b6133028a61337d565b876132b3565b859b919b5283835261331e878787205416613047565b6132e8565b505050565b9190915b60018061ffff831611156133775781617fff911c1690836133626000848152601b602052604060018060a01b0391205416613047565b101561337757613372908261391b565b61332c565b50509050565b60011b906201fffe61fffe831692168203611d4457565b91909161ffff92838216600052601b6020526133d760018060a01b036133c08160406000205416613047565b958316600052601b60205260406000205416613047565b908185106133e55750509190565b9350919050565b6121c29061345b61ffff916134048360165416612774565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613047565b906136ca565b61ffff80601654169081156131ff579060019061348081831115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161351a91908a61350b83613096565b16906016541617601655613823565b84825280865261352e848484205416613047565b95859860028160165416995b61354b575050505050505050505050565b8181168a81116131f9578a81101561358f575080612b9361356b92612774565b9a909a5b8911156131d957613580908b613882565b6135898a61337d565b8761353a565b859b919b528383526135a5878787205416613047565b61356f565b6135b390613785565b9061ffff908160165416906135c88285613882565b826135d283613096565b1661ffff1960165416176016556135e882613823565b8284168092146136c45760009291929183835260189260209484865260018060a01b0391604091613626613620858585205416613047565b8a6136ca565b8152858752613639838383205416613047565b956136438961337d565b978560165416985b8681168a81116136b6578a81101561369b575080612b9361366b92612774565b9a909a5b89111561368e57613680908b613882565b6136898a61337d565b61364b565b5050505050505092505050565b849b919b528282526136b1868686205416613047565b61366f565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133775781617fff911c16908361370460008481526018602052604060018060a01b0391205416613047565b1115613377576137149082613882565b6136ce565b919061ffff808416600052601860205261375a60018060a01b036137438160406000205416613047565b928416600052601860205260406000205416613047565b93848211156133e55750509190565b61ffff60165416156131ff57565b61ffff60195416156131ff57565b6001600160a01b031660009081526017602052604090205461ffff169081156137aa57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137aa57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561386c57565b634e487b7160e01b600052600160045260246000fd5b6138a761ffff80806016541693169361389d84861115613865565b1691821115613865565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61393661ffff80806019541693169361389d84861115613865565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156116ba5701602081359101916001600160401b0382116116ba5781360383136116ba57565b908060209392818452848401376000828201840152601f01601f1916010190565b613a25613a1a613a0c8380611d5a565b604085526040850190611da2565b916020810190611d5a565b91602081830391015281359160ff83168093036116ba57613a52604091613a6294845260208101906139aa565b91909281602082015201916139db565b90565b6020808252613a748380611d5a565b6060918281850152613a8b60809283860190611da2565b613aa2604096838101358888015287810190611d6e565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613add57505050505050505050505090565b909192939495969798999a82828203018752613af98c85611d5a565b90813560de19833603018112156116ba578782528201918a90888e6001600160401b03613b70613b60613b4d613b44613b328b80611d5a565b60e080988c01526101208b01906139fc565b978a018a611d5a565b96603f1997888a830301868b01526139fc565b928d8901358d8901528801611c23565b169060a091828701528a8701359263ffffffff60e01b84168094036116ba578f95613ba7613bb79460c096878b01528a018a6139aa565b92909189850301908901526139db565b9401356101008401520135908115158092036116ba578a01529a8801999897966001019587019493929190613ac8565b91825191613bf483611c37565b93604094613c0486519182611b80565b848152601f19613c1386611c37565b0194602095368784013760005b818110613cea57505060009461ffff8060165416600192839182945b613c99575b505050505060ff600e5460a01c1694858102958187041490151715611d44576064613c6d950491613d75565b9015613c77575050565b600681101561207e5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111613ce25760009081526018855220548493929186918591613cd891613cd2906001600160a01b0316613047565b90611d37565b9b01169493613c3c565b505098613c41565b6001600160a01b0380613cfd8387613d61565b51166000526017885261ffff89600020541615613d3d5790613d2c600192613d258388613d61565b5116613047565b613d368286613d61565b5201613c20565b8890613d4b60249387613d61565b519151633b4f6e2b60e21b815291166004820152fd5b8051821015611f0e5760209160051b010190565b84519294600094908415613e5d5782518514801590613e52575b613e45579392919085945b848610613dbd575050505050501015613db557600090600590565b600190600090565b909192939495613dd7613dd08884613d61565b5184613e6a565b50613de181612074565b613e34576001600160a01b0380613df88a88613d61565b5116911603613e2457613e18600191613e118988613d61565b5190611d37565b96019493929190613d9a565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415613d8f565b5050505050905090600290565b8151919060418303613e9b57613e9492506020820151906060604084015193015160001a90613ea6565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613f2a57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613f1e5780516001600160a01b03811615613f1557918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b814710613f98576000918291829182916001600160a01b03165af13d15613f93573d613f6181611ba1565b90613f6f6040519283611b80565b8152600060203d92013e5b15613f8157565b604051630a12f52160e11b8152600490fd5b613f7a565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613fc65750505050565b613fcf81611ed7565b90546003916001600160a01b039190831b1c811685821614613ff5575050600101613fb9565b92935093906000199182810190811161408257906140268461401961404594611ed7565b905490891b1c1691611ed7565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8254801561406d57019261405884611ed7565b81939154921b1b1916905555388080806120fb565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036140ca57565b6040516330cd747160e01b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b9060209161417281518092818552858086019101612164565b601f01601f1916010190565b9190811015611f0e5760051b81013590601e19813603018212156116ba5701908135916001600160401b0383116116ba5760200182360381136116ba579190565b9190811015611f0e5760051b0190565b600154811015611f0e576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b85841061426657505050505050505090565b9091929394958560036142a5839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d016120ce565b9a019401940192969594939190614254565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd576142f8816142f28454612094565b84612187565b6000601f821160011461433157819293946000926143265750508160011b916000199060031b1c1916179055565b01359050388061221b565b601f198216948382526020918281209281905b88821061437c5750508360019596971061436257505050811b019055565b0135600019600384901b60f8161c1916905538808061226c565b80600184968294958701358155019501920190614344565b906143a160418214613865565b806001116116ba576143bc9136916000190190600101611bbc565b80516020909101206001600160a01b031690565b60ff60125460101c166143df57565b60405163248c8efb60e11b8152600490fd5b906144069061440081846145e4565b826127e1565b60ff60125460081c16156144175750565b60018054600082815b838110614594575b50501561443457505050565b6001600160a01b03831660009081526015602052604090208281015461448a9490916003016040519261446684611b65565b83526020936144918585019260018060a01b038095168452604051988980926120ce565b0388611b80565b60408401968752600160401b8110156104fd5780866144b2920187556141cf565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576144f9836124f78754612094565b81601f84116001146145325750928293918392600094614527575b50501b916000199060031b1c1916179055565b015192503880614514565b919083601f1981168760005284600020946000905b8883831061457a575050501061456157505050811b019055565b015160001960f88460031b161c1916905538808061226c565b858701518855909601959485019487935090810190614547565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146145da57018390614420565b5090508238614428565b60018060a01b031660005260156020526146076002604060002001918254611d37565b9055565b9190604051928160208501526020845261462484611b37565b6001600160401b03601c5416936040519461463e86611b65565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161467281612074565b61467b81612074565b60ff80198a54169116178855519687516001600160401b0381116104fd576146b3816146aa6001850154612094565b60018501612187565b6020601f82116001146147855761476c949282600080516020614f498339815191529795936002936121c29c9d60009261477a575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614731826122ac565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a16145e4565b0151905038806146e8565b6001830160005260206000209960005b601f19841681106147f85750926001836121c29b9c60029461476c9997600080516020614f498339815191529b9997601f198116106147df575b505050811b016001820155614700565b015160001960f88460031b161c191690553880806147cf565b828201518c556001909b019a60209283019201614795565b60ff60135416600381101561207e5761083657565b601454600a54811015614836575b50565b61ffff601654166001600160401b03600c541611156148525750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061488f8161420a565b0390a160018060a01b03600e5416906148ab6002548092611d37565b91803b156116ba5760246000926040519485938492637903ab2760e11b845260048401525af180156148e55715614833576121c290611b52565b6040513d6000823e3d90fd5b6148f9614810565b801561496057336000908152601560205260409020600201548015611a585781101561494f5760ff60125460081c1615614937576121c290336149c5565b806149456121c29233614972565b610e958133612887565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106149b35761499f91612831565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526149de84611b37565b6001600160401b03601c541693604051946149f886611b65565b60018652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151614a2c81612074565b614a3581612074565b60ff80198a54169116178855519687516001600160401b0381116104fd57614a64816146aa6001850154612094565b6020601f8211600114614b3657614b1d949282600080516020614f498339815191529795936002936121c29c9d600092614b2b575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b03614ae2826122ac565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190614159565b9060608301520390a1614972565b015190503880614a99565b6001830160005260206000209960005b601f1984168110614ba95750926001836121c29b9c600294614b1d9997600080516020614f498339815191529b9997601f19811610614b90575b505050811b016001820155614ab1565b015160001960f88460031b161c19169055388080614b80565b828201518c556001909b019a60209283019201614b46565b60ff60125460081c16614cae575b336000908152601560205260409020600201548015611a5857614bf133614cbb565b5060009033825260246020528160408120614c0c8154612094565b80614c71575b50505060ff60125460081c1615614c2e576121c29150336149c5565b60406121c2923381526003602052205480614c4f575b506149458133614972565b80614c5f614c6b92600254612831565b600255610e9533613fb0565b38614c44565b82601f8211600114614c89575050555b813880614c12565b9091808252614ca7601f60208420940160051c840160018501611eac565b5555614c81565b614cb6614810565b614bcf565b6000818152602660205260408120549091908015614da05760001990808201818111614d8c5760255490838201918211614d7857808203614d44575b5050506025548015614d3057810190614d0f82611f24565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614d62614d53611f9493611f24565b90549060031b1c928392611f24565b9055845260266020526040842055388080614cf7565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b9190918215613323576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614f345780614e955750600b54614def91612831565b8152602283528181208251808286829454938481520190855286852092855b88828210614e7f57505050614e2592500382611b80565b928351948515612dc657858110612dc65785900493825b868110614e4c5750505050505050565b6001906001600160a01b03614e618285613d61565b5116855260218452858520614e77888254611d37565b905501614e3c565b8554845260019586019587955093019201614e0e565b846001859214600014614ee557606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fdfe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122064f7e181625ff5443755cb2b8dd1812d64b7420ba3126efeb33b109af40c35e264736f6c63430008130033","sourceMap":"479:455:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;479:455:105;;582:20:68;578:50;;479:455:105;477:1:68;479:455:105;;;987:72:66;;:::i;:::-;960:10:88;:44;;;;;479:455:105;;;;;;;;;;;;960:44:88;;993:10;479:455:105;960:44:88;;479:455:105;960:44:88;;;;;;;;;;;479:455:105;;;;;;960:44:88;;;;:::i;:::-;479:455:105;;960:44:88;;;;479:455:105;;;960:44:88;479:455:105;;;;;;;;;960:44:88;479:455:105;;;578:50:68;479:455:105;;-1:-1:-1;;;611:17:68;;479:455:105;;611:17:68;479:455:105;;;;;;;;;;-1:-1:-1;;479:455:105;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;3394:10:86;;:::i;:::-;479:455:105;1693:14:71;479:455:105;;;;;;;;1726:24:71;1693:57;1689:146;;3498:34:86;;;3494:98;;3606:38;;;3602:102;;3718:14;479:455:105;;;;;;;;6249:9:71;6260:10;;;;;;3714:421:86;;;;;;;479:455:105;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;;;6397:33:71;6393:100;;1243:27:70;6684:13:71;;;;;;:::i;:::-;6709;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;479:455:105;;;;1243:27:70;;;479:455:105;;1243:27:70;;479:455:105;;;;;;:::i;:::-;;;;;;1243:27:70;479:455:105;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;479:455:105;;;;;;;:::i;:::-;;;;;3528:63:70;;479:455:105;;;;;;;;;;;3528:63:70;;479:455:105;;;;3489:15:70;479:455:105;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;1726:24:71;479:455:105;;;;:::i;:::-;1726:24:71;479:455:105;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;1726:24:71;479:455:105;;;;;;;;;-1:-1:-1;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;21913:11:69;479:455:105;;;21913:11:69;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;479:455:105;6249:9:71;;479:455:105;;;;-1:-1:-1;479:455:105;;;;;;1726:24:71;479:455:105;;;;;;;;;;-1:-1:-1;;479:455:105;;;;;;;;;;1726:24:71;479:455:105;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;479:455:105;;-1:-1:-1;;;6457:21:71;;479:455:105;;6457:21:71;3714:421:86;4447:9:71;;;;;;4458:10;;;;;;479:455:105;;;;;;-1:-1:-1;;;;;5341:15:71;479:455:105;;-1:-1:-1;5331:25:71;5327:91;;479:455:105;;;3718:14:86;479:455:105;;;3718:14:86;479:455:105;5464:39:71;479:455:105;;5464:39:71;;;;:::i;:::-;;;;5596:16;479:455:105;;;;;-1:-1:-1;;;;;479:455:105;5587:84:71;;;;;479:455:105;;;;;;;;;;;;5587:84:71;;;479:455:105;5587:84:71;;479:455:105;5587:84:71;;;;;;;;3714:421:86;;479:455:105;;5587:84:71;;;;:::i;:::-;479:455:105;;;;5587:84:71;479:455:105;;;;;;;;;5327:91:71;479:455:105;;-1:-1:-1;;;5379:28:71;;479:455:105;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;479:455:105;;;;4615:13:71;;479:455:105;4615:13:71;;;:::i;:::-;479:455:105;;;4595:33:71;4591:100;;16026:34:69;4832:13:71;;;;;;:::i;:::-;16026:34:69;:::i;:::-;4808:112:71;;479:455:105;4968:13:71;4983;4968;;;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;479:455:105;19151:5:69;;:::i;:::-;5133:13:71;;;;;;:::i;:::-;5156:9;;;;;;:::i;:::-;479:455:105;5177:13:71;;;;;;:::i;:::-;479:455:105;;;;;;;;:::i;:::-;;;;5116:76:71;;;;;479:455:105;;;;;;;:::i;:::-;5116:76:71;479:455:105;5116:76:71;;479:455:105;;;1726:24:71;479:455:105;-1:-1:-1;;;479:455:105;;;;;;1726:24:71;479:455:105;;;1726:24:71;479:455:105;;:::i;:::-;;;;;;;;;;;1726:24:71;479:455:105;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1726:24:71;479:455:105;;;;;;-1:-1:-1;;;;479:455:105;;;;;;;;;;;;;;;4447:9:71;;479:455:105;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:112:71;479:455:105;;-1:-1:-1;;;4877:28:71;;479:455:105;;4877:28:71;3602:102:86;479:455:105;;-1:-1:-1;;;3667:26:86;;479:455:105;;3667:26:86;1689:146:71;2502:71:45;479:455:105;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;479:455:105;;1773:51:71;;2502:71:45;479:455:105;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;479:455:105;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;479:455:105;;582:20:68;578:50;;479:455:105;477:1:68;479:455:105;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;479:455:105;;;;;;;;;;-1:-1:-1;;479:455:105;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;23968:11:69;479:455:105;;;;;;;;907:17;;;:::i;479:455::-;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;-1:-1:-1;;479:455:105;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;:::i;:::-;987:72:66;;;:::i;:::-;1911:30:84;479:455:105;;1944:21:84;479:455:105;1911:54:84;;;;;:::i;:::-;479:455:105;;;1885:22:84;479:455:105;1885:80:84;;:152;;;479:455:105;1868:236:84;;479:455:105;;2148:22:84;2212:54;479:455:105;2148:22:84;;;;;;;:::i;:::-;;479:455:105;2148:22:84;479:455:105;;2148:22:84;;;;;;;;:::i;:::-;479:455:105;2138:33:84;;2212:54;;;:::i;:::-;479:455:105;;;1885:22:84;479:455:105;2186:80:84;479:455:105;;;;;;;;2366:104:84;479:455:105;;;;;;:::i;:::-;;;;;:::i;:::-;2366:104:84;;:::i;:::-;479:455:105;;;1885:22:84;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;:::i;:::-;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;479:455:105;;;;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;;2182:2184:84;479:455:105;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;1885:22:84;;479:455:105;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;:::i;:::-;;;;;;;;;;;;1885:22:84;479:455:105;;;2854:35:84;479:455:105;;8399:50:36;479:455:105;;;2918:10:84;8399:50:36;;:::i;:::-;-1:-1:-1;479:455:105;;;1885:22:84;479:455:105;1911:30:84;479:455:105;3078:16:84;479:455:105;-1:-1:-1;;;;;479:455:105;3069:55:84;;;;;479:455:105;;-1:-1:-1;;;3069:55:84;;479:455:105;;;;;;;;;;;3069:55:84;;479:455:105;3069:55:84;;;:::i;:::-;;;;;;;;;;;479:455:105;3229:34:84;;;;;;:::i;:::-;;:::i;3069:55::-;;;;:::i;:::-;479:455:105;;3069:55:84;;;;479:455:105;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;479:455:105;;;;;;;;2182:2184:84;479:455:105;;;;;;;;;;1885:22:84;479:455:105;3285:56:84;3281:1085;;2182:2184;;479:455:105;;3281:1085:84;479:455:105;;;1885:22:84;479:455:105;;;;;;;;;;;4074:58:84;479:455:105;4074:58:84;;479:455:105;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;4074:58:84;;;;;;;;-1:-1:-1;4074:58:84;;:::i;:::-;479:455:105;4064:69:84;;4151:36;4147:209;;479:455:105;;4147:209:84;479:455:105;;;1885:22:84;479:455:105;;;4266:35:84;479:455:105;;8399:50:36;479:455:105;;;4330:10:84;8399:50:36;;:::i;:::-;;479:455:105;;;;;-1:-1:-1;;;;;479:455:105;;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;1868:236:84;479:455:105;;-1:-1:-1;;;2069:24:84;;479:455:105;;2069:24:84;1885:152;479:455:105;;;;;1885:22:84;479:455:105;1981:56:84;;1885:152;;479:455:105;;;;;;;;;;;;;;;;;337:10:87;;:::i;:::-;2013:176:66;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2145:4:66;479:455:105;;;;;;;;2164:18:66;479:455:105;;;2171:10:66;479:455:105;;2164:18:66;479:455:105;;;;;;;;;-1:-1:-1;;479:455:105;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;582:20:68;578:50;;479:455:105;;;2364:11:86;;2360:65;;479:455:105;2439:14:86;479:455:105;;;;2435:79:86;;2545:10;479:455:105;;;;;;;;;;2528:37:86;2524:93;;2869:6;2545:10;;;479:455:105;;;;;;;;2627:38:86;479:455:105;;;2627:38:86;:::i;:::-;479:455:105;;2675:29:86;479:455:105;2675:19:86;479:455:105;2675:29:86;:::i;:::-;:19;479:455:105;2545:10:86;479:455:105;;;;;;;;;2719:33:86;2715:114;;479:455:105;2545:10:86;2869:6;:::i;2715:114::-;2807:10;2545;2807;:::i;:::-;2715:114;;2524:93;479:455:105;;-1:-1:-1;;;2588:18:86;;479:455:105;;2588:18:86;2435:79;479:455:105;;-1:-1:-1;;;2476:27:86;;479:455:105;;2476:27:86;2360:65;479:455:105;;-1:-1:-1;;;2398:16:86;;479:455:105;;2398:16:86;479:455:105;-1:-1:-1;479:455:105;;-1:-1:-1;;479:455:105;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;479:455:105;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;479:455:105;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;479:455:105;4852:14:86;479:455:105;;;;4848:89:86;;;479:455:105;4950:9:86;:14;4946:70;;5053:10;479:455:105;;;;25176:25:69;479:455:105;;;;;17433:25:69;:52;479:455:105;5026:110:86;;372:2:40;479:455:105;;;;5150:57:86;5146:232;;5053:10;-1:-1:-1;;;;;5415:44:86;479:455:105;;;;;;;5415:44:86;:::i;:::-;479:455:105;5473:30:86;5469:89;;479:455:105;;;;5870:9:86;479:455:105;;;;;;5053:10:86;5870:9;:::i;:::-;5936;4950;5053:10;5936:9;:::i;:::-;5961:14;;:::i;:::-;479:455:105;-1:-1:-1;;;;;;;;;;;479:455:105;;;5568:670:86;479:455:105;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22229:11:69;479:455:105;;;;;;;;;:::i;:::-;17433:25:69;479:455:105;;;3528:63:70;;479:455:105;;;5053:10:86;479:455:105;3528:63:70;;479:455:105;;;;3489:15:70;479:455:105;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;477:1:68;479:455:105;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;17433:25:69;479:455:105;;;;;;;;;;;;477:1:68;479:455:105;;;;;;;;;;;477:1:68;479:455:105;;;;;;;;;;;;3528:63:70;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;22229:11:69;479:455:105;;;22229:11:69;479:455:105;;;;;;17433:25:69;479:455:105;;5053:10:86;479:455:105;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;6217:9:86;4950;5053:10;6217:9;:::i;:::-;5568:670;;479:455:105;;;;-1:-1:-1;479:455:105;;;;;;477:1:68;479:455:105;;;;;;;;;;-1:-1:-1;;479:455:105;;;;;;;;17433:25:69;479:455:105;;;;;477:1:68;479:455:105;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;;;;;;;;;;;;;477:1:68;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;479:455:105;;;;;;;;;;;;;;;5146:232:86;479:455:105;;-1:-1:-1;;;5343:24:86;;479:455:105;;5343:24:86;5026:110;2502:71:45;479:455:105;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;6935:42:86;;;;;;5087:38;;479:455:105;;5087:38:86;;2502:71:45;479:455:105;2502:71:45;;;;:::i;4946:70:86:-;479:455:105;;-1:-1:-1;;;4987:18:86;;479:455:105;;4987:18:86;4848:89;4882:14;;:::i;:::-;4848:89;;479:455:105;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;-1:-1:-1;;;;;;;;;;;479:455:105;;;582:20:68;578:50;;479:455:105;;;987:72:66;;:::i;:::-;814:10:88;479:455:105;;;;3658:13:69;479:455:105;;;;;;;;;;;;;;1777:16:69;;;1773:78;;479:455:105;;;;;1895:25:69;;1930:14;;;2019:13;;;;1954:477;477:1:68;;;1954:477:69;479:455:105;;;;23200:36:69;479:455:105;23200:36:69;479:455:105;;;;;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;3818:6;814:10:88;;3818:6:69;:::i;:::-;479:455:105;;;814:10:88;479:455:105;;;;;;;;;;;;;;;;;23200:36:69;;;;479:455:105;;;3703:76:69;814:10:88;479:455:105;;;;3658:13:69;479:455:105;;;;;814:10:88;;479:455:105;3703:76:69;;1954:477;479:455:105;;;;;;;1961:10:69;;;;;;;479:455:105;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;2270:24;;;;;;;;;;;;;:::i;:::-;479:455:105;;;;;;;;;;;;;;;;;;;;;1954:477:69;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;479:455:105;;-1:-1:-1;;;1816:24:69;;479:455:105;;1816:24:69;479:455:105;-1:-1:-1;479:455:105;;-1:-1:-1;;479:455:105;;;;;;;;;;;;987:72:66;;:::i;:::-;4004:16:72;479:455:105;-1:-1:-1;;;;;479:455:105;3990:10:72;:30;3986:80;;4259:1;479:455:105;;;;;4259:1:72;:::i;3986:80::-;479:455:105;;-1:-1:-1;;;4043:12:72;;479:455:105;;4043:12:72;479:455:105;;;;;;;;;;;;;4273:61:72;;:::i;:::-;479:455:105;17942:86:69;479:455:105;17942:32:69;479:455:105;;;17987:31:69;479:455:105;;17942:86:69;;:::i;:::-;479:455:105;10025:97:86;;10132:8;479:455:105;;-1:-1:-1;;479:455:105;;;;;10166:16:86;479:455:105;;;-1:-1:-1;;;;;479:455:105;10157:33:86;;;;;479:455:105;;;;;;;;;;;;;10157:33:86;;;;;;;;;;479:455:105;;10025:97:86;479:455:105;;-1:-1:-1;;;10085:26:86;;479:455:105;;10085:26:86;479:455:105;;;;;;;;;;;;;524:10:87;;:::i;:::-;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;1618:10:66;1614:63;;479:455:105;;;;;2473:20:66;479:455:105;;;2482:10:66;479:455:105;;2473:20:66;479:455:105;;1614:63:66;479:455:105;;-1:-1:-1;;;1651:15:66;;479:455:105;;1651:15:66;479:455:105;;;;;;;;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;6739:14:86;;:::i;:::-;6797:9;:14;6793:70;;6901:10;479:455:105;;;;25176:25:69;479:455:105;;;;;17433:25:69;:52;479:455:105;17433:57:69;6873:115:86;;7003:14;479:455:105;;;;;;;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:105;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;6935:42:86;;;;;;;;479:455:105;;6935:42:86;;2502:71:45;;;;;;:::i;479:455:105:-;;;;;;;-1:-1:-1;;479:455:105;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;727:20;;;:::i;479:455::-;;;;;;;;;;;-1:-1:-1;;479:455:105;;;;987:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;479:455:105;;4326:1:72;:::i;479:455:105:-;;;;;-1:-1:-1;;479:455:105;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;4950:17:84;479:455:105;4950:17:84;;479:455:105;;4970:19:84;479:455:105;4950:51:84;;;;4946:108;;479:455:105;5067:10:84;;;;;;:::i;:::-;479:455:105;;;5087:25:84;479:455:105;;5067:45:84;;;5063:108;;5277:10;;;;:::i;:::-;:46;;;;:99;;;479:455:105;5273:156:84;;5442:10;;;;:::i;:::-;:22;;;5438:81;;479:455:105;;;;;5559:17:84;;;;;;;;;:::i;:::-;;479:455:105;;5559:17:84;;;;;;:::i;:::-;479:455:105;5549:28:84;;;5592:52;;;;479:455:105;;;;;;5923:24:84;479:455:105;5910:37:84;5906:200;;5588:1250;479:455:105;;5906:200:84;479:455:105;;6026:30:84;479:455:105;;8399:50:36;479:455:105;;;6080:10:84;8399:50:36;;:::i;5588:1250:84:-;6220:99;479:455:105;;;;;;;;;;;;;;;:::i;6220:99:84:-;479:455:105;;;;;;;:::i;:::-;;;;6519:71:84;479:455:105;;4970:19:84;479:455:105;;;;;6660:30:84;479:455:105;;8399:50:36;479:455:105;;;6714:10:84;8399:50:36;;:::i;:::-;-1:-1:-1;6782:16:84;479:455:105;-1:-1:-1;;;;;479:455:105;;6773:54:84;;;;;479:455:105;;6773:54:84;479:455:105;;;;;;;;;;;;6773:54:84;;479:455:105;6773:54:84;;;:::i;:::-;;;;;;;;;;;5588:1250;479:455:105;;6773:54:84;;;;:::i;5438:81::-;479:455:105;;-1:-1:-1;;;5487:21:84;;479:455:105;;5487:21:84;5273:156;479:455:105;;-1:-1:-1;;;5399:19:84;;479:455:105;;5399:19:84;5277:99;479:455:105;5347:24:84;479:455:105;;;;;;;5327:49:84;;5277:99;;479:455:105;-1:-1:-1;;;479:455:105;;;;;;;;5063:108:84;479:455:105;;-1:-1:-1;;;5135:25:84;;479:455:105;;5135:25:84;479:455:105;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;987:72:66;;;:::i;:::-;10437:10:86;479:455:105;;1317:17:79;479:455:105;;;;;;;;1317:33:79;10399:107:86;;479:455:105;;10519:29:86;10515:81;;10437:10;479:455:105;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;10437:10:86;8399:50:36;:::i;479:455:105:-;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;;;10515:81:86;479:455:105;;-1:-1:-1;;;10571:14:86;;479:455:105;;10571:14:86;10399:107;479:455:105;;-1:-1:-1;;;10471:24:86;;10437:10;479:455:105;10471:24:86;;479:455:105;;;10471:24:86;479:455:105;;;;;;;;;;;1668:9:86;:14;1664:68;;479:455:105;;1746:14:86;479:455:105;;;;1742:79:86;;1852:10;479:455:105;;;;;;;;;1835:33:86;1831:101;;479:455:105;1852:10:86;479:455:105;;;;;;;;1942:41:86;1668:9;479:455:105;;1942:41:86;:::i;:::-;479:455:105;;1993:32:86;1668:9;1993:19;479:455:105;1993:32:86;:::i;:::-;:19;479:455:105;;;1831:101:86;479:455:105;;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;1852:10:86;479:455:105;;;;;;;;1831:101:86;;479:455:105;-1:-1:-1;;;479:455:105;;;;;;;;1664:68:86;-1:-1:-1;;;1705:16:86;;479:455:105;;1705:16:86;479:455:105;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;:::o;:::-;-1:-1:-1;;;;;479:455:105;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;:::o;:::-;-1:-1:-1;;;;;479:455:105;;;;;;-1:-1:-1;;479:455:105;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:105;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:105;;;;;;:::o;:::-;-1:-1:-1;;;;;479:455:105;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:105;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;479:455:105;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;479:455:105;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;479:455:105;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;479:455:105;;;;-1:-1:-1;479:455:105;:::o;:::-;;;;;;;;;;;;;10707:17:86;479:455:105;;;;;;10707:17:86;-1:-1:-1;479:455:105;;;;-1:-1:-1;479:455:105;:::o;2215:404:36:-;-1:-1:-1;479:455:105;;;4352:12:36;479:455:105;;;;;;;;10707:17:86;479:455:105;-1:-1:-1;;;479:455:105;;;;;;;;;;4352:12:36;479:455:105;;;10707:17:86;479:455:105;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;10707:17:86;479:455:105;;;;4352:12:36;479:455:105;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;479:455:105;;;;;;;;;;;4352:24:36;2294:319;479:455:105;;;;;;-1:-1:-1;;;479:455:105;;;;;4352:12:36;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;479:455:105:-;-1:-1:-1;;;479:455:105;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;1371:121:66:-;479:455:105;-1:-1:-1;;;;;;;;;;;479:455:105;;1424:62:66;;1371:121::o;1424:62::-;479:455:105;;-1:-1:-1;;;1460:15:66;;;;;479:455:105;;-1:-1:-1;479:455:105;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;479:455:105;;;;-1:-1:-1;479:455:105;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;479:455:105;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;479:455:105;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:105;-1:-1:-1;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;:::o;24177:1944:69:-;24359:11;479:455:105;-1:-1:-1;;;;;479:455:105;;;;;;;;24385:56:69;;479:455:105;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;479:455:105;;;;;24513:56:69;;24509:93;;479:455:105;;;;;;24694:24:69;479:455:105;;;;24694:24:69;;;;26026:23;;;479:455:105;26026:23:69;;26065:49;26026:23;;:::i;:::-;-1:-1:-1;;;24359:11:69;479:455:105;;;;;;-1:-1:-1;;;479:455:105;;;24359:11:69;479:455:105;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;479:455:105;;;3893:15:70;479:455:105;;;;;;;3893:36:70;24823:16:69;;;;479:455:105;;;;;24823:16:69;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;:::i;:::-;24858:41:69;;;24823:16;;24967:14;;24919:45;:36;479:455:105;;24967:14:69;;;;;24919:36;479:455:105;;;;;;;;25176:25:69;479:455:105;;;;;;;24919:36:69;:45;479:455:105;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;479:455:105;;;3893:15:70;479:455:105;;;;;;;4051:36:70;3793:45:72;;479:455:105;;;;;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;479:455:105;;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;479:455:105;;;;;;;;;;25125:14:69;;;479:455:105;:::i;:::-;;;;:::i;:::-;;;25114:44:69;;;;;;;;;;479:455:105;;;;;25114:44:69;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;25176:36:69;;;;479:455:105;;;;;;;;25176:25:69;479:455:105;;;;;;;25176:36:69;:45;479:455:105;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;479:455:105;;;;;;;;;3793:45:72;479:455:105;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;479:455:105;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;3793:45:72;479:455:105;;;3793:45:72;479:455:105;;3793:45:72;479:455:105;;;;;;;;;25298:5:69;479:455:105;;;;;;;;;;;;;;;;;25298:5:69;:::i;479:455:105:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;3793:45:72;479:455:105;;;;;;;;;25002:869:69;479:455:105;;;;;;;;;;;;;;;25371:14:69;;;479:455:105;:::i;:::-;25360:37:69;479:455:105;;;;25360:37:69;;479:455:105;;;;25360:37:69;;;;;479:455:105;;;;;:::i;:::-;25420:38:69;3893:15:70;;25524:6:69;;;;;;:::i;:::-;25553:14;479:455:105;3147:35:69;;:12;:35;:::i;:::-;479:455:105;;;;;;;:::i;:::-;;;;3224:54:69;;;479:455:105;;;-1:-1:-1;;;;;479:455:105;;;;;;3658:13:69;479:455:105;;;;;3224:54:69;;479:455:105;;;;;;;;;;;;;;;;;;;1273:22:69;;;;:::i;:::-;479:455:105;3793:45:72;;479:455:105;;;1306:13:69;;;479:455:105;;;;;;;;;;;;1362:10:69;;;:::i;:::-;479:455:105;;;;;;;;;;;;;;;;;;;;;;3343:85:69;;;25631:16;479:455:105;;25622:47:69;;;;;;479:455:105;;;;;;;;;;;;;;;25622:47:69;;;;;479:455:105;25622:47:69;;;;;;;;;;;;;;;25416:441;;24854:1017;;25622:47;;;;:::i;:::-;;;;;479:455:105;;;;;;;;;;25416:441:69;25757:6;;;;;;;;;;:::i;:::-;25795:16;479:455:105;;25786:52:69;;;;;;479:455:105;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;;25416:441;24854:1017;;479:455:105;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:69:-;;479:455:105;;;;;;;-1:-1:-1;479:455:105;9465:15:69;479:455:105;;;-1:-1:-1;479:455:105;;;;;;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:105;;;;;;;;;-1:-1:-1;479:455:105;10005:15:69;479:455:105;;10005:55:69;479:455:105;;;-1:-1:-1;479:455:105;10005:46:69;479:455:105;10005:55:69;:::i;:::-;479:455:105;-1:-1:-1;479:455:105;10005:15:69;479:455:105;;;;;-1:-1:-1;479:455:105;10070:46:69;479:455:105;10143:29:69;479:455:105;10143:39:69;:::i;:::-;:29;479:455:105;10258:13:69;:::i;479:455:105:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:69:-;;10830:13;10856:39;10286:616;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;10416:15:69;479:455:105;;10416:55:69;479:455:105;;;;;10416:46:69;479:455:105;10416:55:69;:::i;:::-;479:455:105;;;10416:15:69;479:455:105;;;;;10416:15:69;10507:42;;479:455:105;;;10564:18:69;;:42;;;;10286:616;-1:-1:-1;10560:199:69;;;479:455:105;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:29;479:455:105;10856:39:69;:::i;:::-;:29;479:455:105;10286:616:69:o;10560:199::-;10686:46;;;479:455:105;10686:46:69;479:455:105;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;479:455:105;;;;;;;;;-1:-1:-1;479:455:105;;;;;;1317:17:79;479:455:105;;;;;;;;;;;;11120:226:69;;479:455:105;1693:14:71;479:455:105;;;;;11124:21:69;479:455:105;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;479:455:105;;;;;4077:23:77;479:455:105;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;479:455:105;;;1317:17:79;479:455:105;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;479:455:105;;;;4619:7:77;;;4612:423;-1:-1:-1;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;-1:-1:-1;;;;479:455:105;;;;;;;;;-1:-1:-1;13008:56:69;;479:455:105;;;;13008:56:69;479:455:105;4612:423:77;479:455:105;;1991:25:79;479:455:105;;;;;;;;;;;1952:17:79;479:455:105;;;;;;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:105;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;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:105;11124:21:69;479:455:105;;4932:763:78;;479:455:105;;;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:105;;-1:-1:-1;;;;;479:455:105;;;;;-1:-1:-1;;;;479:455:105;;;;;;;5556:5:78;;-1:-1:-1;11260:55:69;;-1:-1:-1;479:455:105;;;;11260:55:69;479:455:105;4971:413:78;479:455:105;;;;;1952:17:79;479:455:105;;1991:25:79;479:455:105;;;;;;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:105;;;;;;;;;-1:-1:-1;;479:455:105;;;;;1317:17:79;479:455:105;;;;;;;;;;;;13428:421:69;;479:455:105;;;1317:17:79;479:455:105;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;479:455:105;;;;;4277:7:78;;;;479:455:105;;;;;;;;;1952:17:79;479:455:105;;;1991:25:79;479:455:105;;;;;;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:105;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;479:455:105;;;1952:17:79;479:455:105;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;479:455:105;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;;15274:53:69;;479:455:105;;;;15274:53:69;479:455:105;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:105;;;;;14155:30:69;13432:22;479:455:105;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;479:455:105;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;479:455:105;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;479:455:105;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;479:455:105;;;;;;;;;13432:22:69;479:455:105;;5287:763:77;479:455:105;;;5287:763:77;-1:-1:-1;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;-1:-1:-1;;;;479:455:105;;;;;;;-1:-1:-1;479:455:105;;-1:-1:-1;13764:54:69;;479:455:105;-1:-1:-1;479:455:105;;;;13764:54:69;479:455:105;5287:763:77;479:455:105;;;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:105;;1952:17:79;479:455:105;;;;;;;;1991:25:79;;479:455:105;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;479:455:105;;;;13605:31:69;13654:7::o;998:417:77:-;1401:5;998:417;1301:30;479:455:105;;1119:19:77;479:455:105;12499:22:69;479:455:105;;1119:19:77;:::i;:::-;479:455:105;;;;;;;;;;-1:-1:-1;479:455:105;1149:23:77;479:455:105;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:105;1200:23:77;479:455:105;;;-1:-1:-1;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;12499:22:69;479:455:105;;;12499:22:69;479:455:105;1301:30:77;:::i;:::-;1401:5;;:::i;4525:375:69:-;479:455:105;1693:14:71;479:455:105;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;479:455:105;-1:-1:-1;479:455:105;;;4745:21:69;479:455:105;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;479:455:105;-1:-1:-1;479:455:105;;;4831:21:69;479:455:105;;;;;;4831:52:69;479:455:105;;4525:375:69:o;479:455:105:-;;;;;-1:-1:-1;;479:455:105;;;;;;;:::o;1545:401:77:-;479:455:105;;13432:22:69;479:455:105;;1044:14:79;;;1040:61;;479:455:105;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;479:455:105;;;;2468:17:79;479:455:105;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;2551:17:79;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;479:455:105;1766:8:77;;479:455:105;1766:8:77;:::i;:::-;479:455:105;;13432:22:69;479:455:105;;;13432:22:69;479:455:105;1799:4:77;:::i;:::-;479:455:105;;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;479:455:105;13432:22:69;479:455:105;;5287:763:77;479:455:105;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;479:455:105;;;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:105;;;;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;479:455:105;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;479:455:105;;;12499:22:69;479:455:105;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;479:455:105;;;12499:22:69;479:455:105;;;12499:22:69;479:455:105;2415:4:77;;;:::i;:::-;479:455:105;;;2435:11:77;;;2431:48;;-1:-1:-1;479:455:105;-1:-1:-1;;479:455:105;;;;1952:17:79;479:455:105;;;;;;;;;;;;;;2668:5:77;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;479:455:105;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;2854:5:77;;479:455:105;;;;;;;;;12499:22:69;479:455:105;;5287:763:77;479:455:105;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;479:455:105;;;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:105;;;;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;5326:412:77;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;479:455:105;;;;4619:7:77;;;;479:455:105;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;479:455:105;;;1952:17:79;479:455:105;;;;;;;;;;;;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:105:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;479:455:105;;;;;-1:-1:-1;479:455:105;1952:17:79;479:455:105;;1991:25:79;479:455:105;;;;;1991:25:79;479:455:105;;-1:-1:-1;479:455:105;;;1991:25:79;:::i;:::-;479:455:105;;;-1:-1:-1;479:455:105;1952:17:79;479:455:105;;;-1:-1:-1;479:455:105;;;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:105;;1045:19:78;479:455:105;11124:21:69;479:455:105;;1045:19:78;:::i;:::-;479:455:105;;;;;;;;;;-1:-1:-1;479:455:105;1075:23:78;479:455:105;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:105;1126:23:78;479:455:105;;;-1:-1:-1;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;11124:21:69;479:455:105;;;11124:21:69;479:455:105;1227:30:78;:::i;:::-;1327:5;;:::i;1408:401::-;479:455:105;;11124:21:69;479:455:105;;1044:14:79;;;1040:61;;479:455:105;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;479:455:105;;;;2468:17:79;479:455:105;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;2551:17:79;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;479:455:105;1629:8:78;;479:455:105;1629:8:78;:::i;:::-;479:455:105;;11124:21:69;479:455:105;;;11124:21:69;479:455:105;1662:4:78;:::i;:::-;479:455:105;;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;479:455:105;11124:21:69;479:455:105;;4932:763:78;479:455:105;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;479:455:105;;;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:105;;;;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;479:455:105;;;;13888:21:69;479:455:105;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;479:455:105;;;13888:21:69;479:455:105;;;13888:21:69;479:455:105;2215:4:78;;;:::i;:::-;479:455:105;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;479:455:105;;;;1952:17:79;479:455:105;;;;;;;;;;;;;;2466:3:78;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;479:455:105;;;;;1991:25:79;479:455:105;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;479:455:105;13888:21:69;479:455:105;;4932:763:78;;479:455:105;;;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:105;;;;;;;;1991:25:79;479:455:105;;;;;;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:105;;;;4277:7:78;;;;479:455:105;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;479:455:105;;;1952:17:79;479:455:105;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;479:455:105;;;;-1:-1:-1;479:455:105;1952:17:79;479:455:105;;1991:25:79;479:455:105;;;;;1991:25:79;479:455:105;;-1:-1:-1;479:455:105;;;1991:25:79;:::i;:::-;479:455:105;;;-1:-1:-1;479:455:105;1952:17:79;479:455:105;;;-1:-1:-1;479:455:105;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;479:455:105;11124:21:69;479:455:105;;1044:14:79;1040:61;;974:133::o;:::-;479:455:105;13432:22:69;479:455:105;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;479:455:105;-1:-1:-1;479:455:105;;;1474:17:79;479:455:105;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;479:455:105;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;479:455:105;-1:-1:-1;479:455:105;;;1474:17:79;479:455:105;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;479:455:105;;-1:-1:-1;479:455:105;;;1671:17:79;479:455:105;;;;;;;;;;-1:-1:-1;;;;;;479:455:105;;;;;-1:-1:-1;;;;;479:455:105;;;1749:17:79;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;1595:184:79:o;:::-;479:455:105;;-1:-1:-1;479:455:105;;;1671:17:79;479:455:105;;;;;;;;;;-1:-1:-1;;;;;;479:455:105;;;;;-1:-1:-1;;;;;479:455:105;;;1749:17:79;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;1595:184:79:o;479:455:105:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;479:455:105;;;11124:21:69;479:455:105;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;479:455:105;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;479:455:105;;;2468:17:79;479:455:105;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;2551:17:79;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;479:455:105;;;12870:22:69;479:455:105;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;479:455:105;;;2468:17:79;479:455:105;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;2551:17:79;479:455:105;;;;;;;-1:-1:-1;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;2301:412:79:o;479:455:105:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;479:455:105;;;;;;;;-1:-1:-1;;479:455:105;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7405:890:84;;479:455:105;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;479:455:105;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;7801:36:84;;-1:-1:-1;479:455:105;;;6312:27:69;479:455:105;;;6364:12:69;;;;6359:236;479:455:105;;;6359:236:69;479:455:105;;;;;;7888:20:84;479:455:105;;;;;;;;;;;;;;;;;;;7912:3:84;7974:229;479:455:105;;7974:229:84;;:::i;:::-;8218:6;;8214:75;;7405:890;;:::o;8214:75::-;479:455:105;;;;;;;;;;8247:31:84;;;;;;479:455:105;8247:31:84;;;479:455:105;8247:31:84;6364:12:69;479:455:105;;;;;;;;;6378:9:69;;;;;-1:-1:-1;479:455:105;;;598:23:78;479:455:105;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;479:455:105;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;479:455:105;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;479:455:105;7692:12:69;;;;:::i;:::-;479:455:105;;-1:-1:-1;479:455:105;1317:17:79;479:455:105;;;;-1:-1:-1;479:455:105;;;1317:33:79;7657:116:69;;7829:12;7808:34;479:455:105;7829:12:69;;;;;:::i;:::-;479:455:105;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;479:455:105;;7620:9:69;;7657:116;7745:12;;;479:455:105;7745:12:69;;;:::i;:::-;479:455:105;;;-1:-1:-1;;;7732:26:69;;479:455:105;;7732:26:69;;;479:455:105;7732:26:69;479:455:105;;;;;;;;;;;;;;;:::o;1239:1329:65:-;479:455:105;;1239:1329:65;;479:455:105;;;1596:21:65;;1592:90;;479:455:105;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;479:455:105;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;479:455:105;2466:25:65;479:455:105;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;479:455:105;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;479:455:105;2219:14:65;;;;:::i;:::-;479:455:105;;;;2206:27:65;2202:105;;2329:19;479:455:105;2338:10:65;;;;;:::i;:::-;479:455:105;2329:19:65;;:::i;:::-;479:455:105;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;479:455:105;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;479:455:105;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;479:455:105;1788:41:65;:::o;1696:76::-;479:455:105;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;479:455:105;;;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:105;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;479:455:105;;;;;;;;;;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:105;1749:33:29;;479:455:105;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;479:455:105;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;479:455:105;;-1:-1:-1;;;1827:17:29;;;;;479:455:105;;;1611:109:29;479:455:105;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;479:455:105;;;1668:41:29;6969:557:71;7128:20;479:455:105;;;7170:9:71;3793:45:72;7181:10:71;;;;;;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;479:455:105;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;7213:31:71;7209:242;;479:455:105;;;;7170:9:71;;7209:242;479:455:105;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;479:455:105;;;;;;;7264:23:71;;:::i;:::-;:58;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;479:455:105;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;479:455:105;;;;;;3793:45:72;479:455:105;;;3793:45:72;479:455:105;;;;;;;3793:45:72;479:455:105;;;3793:45:72;479:455:105;2587:156:62;2663:30;479:455:105;-1:-1:-1;;;;;479:455:105;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;479:455:105;;-1:-1:-1;;;2716:10:62;;;;;479:455:105;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;;:::o;2502:71:45:-;;479:455:105;2502:71:45;;479:455:105;;;;;;;;;;;2502:71:45;;;:::i;:::-;479:455:105;;-1:-1:-1;;479:455:105;2502:71:45;;;:::o;479:455:105:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1726:24:71;479:455:105;;;;;;;;1726:24:71;-1:-1:-1;479:455:105;;;;;-1:-1:-1;479:455:105;:::o;:::-;;;;;;;;5091:19:71;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19251:224:69;-1:-1:-1;;;;;479:455:105;;;;;25176:25:69;479:455:105;;;;;19251:224:69;;;;8282:41;;479:455:105;-1:-1:-1;;;;;479:455:105;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;479:455:105;;;;;;;;;;;3793:45:72;479:455:105;;;;;;;;;;;;8282:41:69;479:455:105;;;;;;;19251:224:69:o;479:455:105:-;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;479:455:105:-;;;-1:-1:-1;;8282:41:69;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:105;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;479:455:105;:::i;:::-;;;;;;;3715:24:71;-1:-1:-1;;;;;479:455:105;;3527:269:71:o;4078:118:72:-;479:455:105;4127:8:72;479:455:105;;;;4123:67:72;;4078:118::o;4123:67::-;479:455:105;;-1:-1:-1;;;4158:21:72;;;;;19573:1335:69;;19954:6;19573:1335;19831:6;;;;:::i;:::-;19954;;:::i;:::-;479:455:105;19977:14:69;479:455:105;;;;19976:15:69;19972:930;;19573:1335;:::o;19972:930::-;20165:19;479:455:105;;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:105;;;;;;25176:25:69;479:455:105;;;;;20550:56:69;;;479:455:105;;;;;;20766:45:69;479:455:105;;;;;;:::i;:::-;;;20647:183:69;;479:455:105;20647:183:69;;;479:455:105;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20647:183:69;;479:455:105;;;-1:-1:-1;;;479:455:105;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3793:45:72;479:455:105;;;;;;;;;;;;;;;;;;;2462:7:77:o;479:455:105:-;;;;-1:-1:-1;479:455:105;;;;;;;;;;;;;3793:45:72;479:455:105;;3793:45:72;479:455:105;;3793:45:72;479:455:105;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;479:455:105;;;;;;20210:9:69;3793:45:72;479:455:105;;;;;;20257:27:69;;479:455:105;-1:-1:-1;;;;;479:455:105;;;;;20257:40:69;20253:137;;479:455:105;20210:9:69;;;;20253:137;20321:23;;;20366:5;;;;8648:175;479:455:105;;;;;;-1:-1:-1;479:455:105;8758:21:69;479:455:105;;8758:58:69;:21;479:455:105;-1:-1:-1;479:455:105;8758:48:69;479:455:105;;;8758:58:69;:::i;:::-;479:455:105;;8648:175:69:o;22329:256::-;;;479:455:105;;2707:18:70;;;;;479:455:105;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;479:455:105;;;;;;;;;:::i;:::-;-1:-1:-1;479:455:105;;2707:18:70;3528:63;;479:455:105;;;;;;;;;;;;3528:63:70;;479:455:105;;-1:-1:-1;479:455:105;3489:15:70;2707:18;479:455:105;;-1:-1:-1;479:455:105;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;479:455:105;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;22571:6:69;479:455:105;;-1:-1:-1;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;22476:11:69;479:455:105;;;22476:11:69;479:455:105;;;;;;-1:-1:-1;479:455:105;;;;;;;;;2707:18:70;479:455:105;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;479:455:105:-;;;;-1:-1:-1;479:455:105;;;;;;;;-1:-1:-1;479:455:105;2707:18:70;-1:-1:-1;479:455:105;;-1:-1:-1;479:455:105;-1:-1:-1;;479:455:105;;;;;;;;;;22571:6:69;479:455:105;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;479:455:105;;;;;;;1090:308:71;479:455:105;1233:14:71;479:455:105;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;479:455:105;2236:25:71;479:455:105;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;479:455:105;5328:27:69;479:455:105;;-1:-1:-1;;;;;2319:15:71;479:455:105;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;479:455:105;;;2354:14:71;479:455:105;;;2354:14:71;479:455:105;2398:39:71;479:455:105;;2398:39:71;;;;:::i;:::-;;;;479:455:105;;;;;2546:16:71;479:455:105;;;2580:37:71;2598:19;479:455:105;2580:37:71;;;:::i;:::-;2537:102;;;;;;479:455:105;3793:45:72;479:455:105;;;;;;;;;;;2537:102:71;;;;;479:455:105;2537:102:71;;;;;;;2213:451;2537:102;;;;:::i;:::-;479:455:105;;;3793:45:72;479:455:105;;;;;7441:782:86;7665:14;;:::i;:::-;7724:11;;7720:68;;7855:10;479:455:105;;;;25176:25:69;479:455:105;;;;;18718:25:69;:52;479:455:105;7881:15:86;;7877:77;;7967:20;-1:-1:-1;7967:20:86;7963:79;;479:455:105;8056:14:86;479:455:105;;;;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:105;;-1:-1:-1;;;8010:21:86;;;;;7720:68;479:455:105;;-1:-1:-1;;;7758:19:86;;;;;8895:364:69;-1:-1:-1;;;;;479:455:105;-1:-1:-1;479:455:105;;;9022:21:69;479:455:105;;;;;9022:21:69;:48;479:455:105;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;479:455:105;-1:-1:-1;479:455:105;9022:21:69;479:455:105;;9022:21:69;479:455:105;-1:-1:-1;479:455:105;9196:48:69;479:455:105;8895:364:69:o;9080:81::-;479:455:105;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;;479:455:105;;2064:18:70;;;;;479:455:105;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;479:455:105;;;;;;;;;:::i;:::-;2217:25:70;479:455:105;;2064:18:70;3528:63;;479:455:105;;;;;;;;;;;;3528:63:70;;479:455:105;;-1:-1:-1;479:455:105;3489:15:70;2064:18;479:455:105;;-1:-1:-1;479:455:105;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;2217:25:70;479:455:105;;;;:::i;:::-;2064:18:70;479:455:105;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;22876:6:69;479:455:105;;-1:-1:-1;479:455:105;;;;;;;2217:25:70;479:455:105;;;;;;;;;;;2217:25:70;479:455:105;;;;;;;;;;;;3528:63:70;;479:455:105;;-1:-1:-1;;;;;479:455:105;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;479:455:105;-1:-1:-1;;;;;479:455:105;22779:11:69;479:455:105;;;22779:11:69;479:455:105;;;;;;2217:25:70;479:455:105;;;;;;;;;2064:18:70;479:455:105;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;479:455:105:-;;;;-1:-1:-1;479:455:105;;;;;2217:25:70;479:455:105;;-1:-1:-1;479:455:105;2064:18:70;-1:-1:-1;479:455:105;;-1:-1:-1;479:455:105;-1:-1:-1;;479:455:105;;;;;;;;2217:25:70;479:455:105;22876:6:69;479:455:105;;;;;;;-1:-1:-1;;;;;;;;;;;479:455:105;;;;;;;;;;;;;;;;;2217:25:70;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:70;479:455:105;;;;2064:18:70;479:455:105;;;;;;;8297:1550:86;479:455:105;8698:14:86;479:455:105;;;;8694:89:86;;8297:1550;8904:10;479:455:105;;;;25176:25:69;479:455:105;;;;;18718:25:69;:52;479:455:105;8929:11:86;;8925:73;;8720:53:36;8904:10:86;8720:53:36;:::i;:::-;;-1:-1:-1;8904:10:86;;479:455:105;;9112:16:86;479:455:105;;;;;;;;;;:::i;:::-;;;;8297:1550:86;479:455:105;;;;8698:14:86;479:455:105;;;;9155:15:86;9151:641;;9833:6;8904:10;;;9833:6;:::i;9151:641::-;479:455:105;21588:6:69;8904:10:86;;479:455:105;;9308:16:86;479:455:105;;;;9354:19:86;9350:277;;9151:641;8904:10;21358:6:69;8904:10:86;;21358:6:69;:::i;9350:277:86:-;479:455:105;9444:37:86;9597:14;479:455:105;18718:25:69;479:455:105;9444:37:86;:::i;:::-;18718:25:69;479:455:105;9538:10:86;8904;9538;:::i;9597:14::-;9350:277;;;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8694:89:86;8728:14;;:::i;:::-;8694:89;;2787:1388:36;-1:-1:-1;479:455:105;;;2990:12:36;479:455:105;;;;;;-1:-1:-1;;479:455:105;3024:15:36;;;;-1:-1:-1;;479:455:105;;;;;;;;;9059:17:86;479:455:105;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;479:455:105;;;9059:17:86;479:455:105;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9059:17:86;479:455:105;;;2990:12:36;479:455:105;;;;;;2990:12:36;4104:11;:::o;479:455:105:-;-1:-1:-1;;;479:455:105;;;;;;;;3502:398:36;479:455:105;3572:22:36;3694:26;3572:22;;:::i;:::-;479:455:105;;;;;;3694:26:36;;;;:::i;479:455:105:-;;;;;2990:12:36;479:455:105;;;;;;3502:398:36;;;;;479:455:105;-1:-1:-1;;;479:455:105;;;;;;;;;-1:-1:-1;;;479:455:105;;;;;;;;3020:1149:36;4146:12;;;:::o;1332:1492:88:-;;;;1507:11;;1503:48;;479:455:105;;;;;;;;;;;;;-1:-1:-1;;;;;479:455:105;;;;;;;1517:1:88;479:455:105;;;;;;;;;;1653:32:88;;;-1:-1:-1;3208:21:71;479:455:105;3199:30:71;;;:::i;:::-;479:455:105;;3250:35:71;479:455:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1649:568:88;479:455:105;;2425:19:88;;;2421:56;;2490:23;;;2486:60;;479:455:105;;;2647:9:88;;2658:18;;;;;;1332:1492;;;;;;;:::o;2647:9::-;479:455:105;;-1:-1:-1;;;;;2719:11:88;479:455:105;2719:11:88;;:::i;:::-;479:455:105;;;;2694:16:88;479:455:105;;;;;2694:54:88;479:455:105;;;2694:54:88;:::i;:::-;479:455:105;;;2647:9:88;;479:455:105;;;;;;;;;;;;-1:-1:-1;479:455:105;;;;;;1649:568:88;1779:38;479:455:105;1779:38:88;;;1775:442;479:455:105;;;;;;6935:42:86;;;;2062:51:88;;;;;479:455:105;;;;;;;;;;;2062:51:88;1775:442;479:455:105;;;6935:42:86;;;;2151:55:88;;;;;479:455:105;;;;;;;;;;;-1:-1:-1;;;479:455:105;;;;2151:55:88;479:455:105;-1:-1:-1;;;479:455:105;;;;;;;","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":58923,"exportedSymbols":{"LibStaking":[46129],"SubnetActorCheckpointingFacet":[50577],"SubnetActorManagerFacet":[51946],"SubnetActorMock":[58922],"SubnetActorPauseFacet":[51991],"SubnetActorRewardFacet":[52158]},"nodeType":"SourceUnit","src":"46:889:105","nodes":[{"id":58873,"nodeType":"PragmaDirective","src":"46:23:105","nodes":[],"literals":["solidity","0.8",".19"]},{"id":58875,"nodeType":"ImportDirective","src":"71:85:105","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":58923,"sourceUnit":51947,"symbolAliases":[{"foreign":{"id":58874,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51946,"src":"79:23:105","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58877,"nodeType":"ImportDirective","src":"157:56:105","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../src/lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":58923,"sourceUnit":46394,"symbolAliases":[{"foreign":{"id":58876,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"165:10:105","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58879,"nodeType":"ImportDirective","src":"214:81:105","nodes":[],"absolutePath":"src/subnet/SubnetActorPauseFacet.sol","file":"../../src/subnet/SubnetActorPauseFacet.sol","nameLocation":"-1:-1:-1","scope":58923,"sourceUnit":51992,"symbolAliases":[{"foreign":{"id":58878,"name":"SubnetActorPauseFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51991,"src":"222:21:105","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58881,"nodeType":"ImportDirective","src":"296:83:105","nodes":[],"absolutePath":"src/subnet/SubnetActorRewardFacet.sol","file":"../../src/subnet/SubnetActorRewardFacet.sol","nameLocation":"-1:-1:-1","scope":58923,"sourceUnit":52159,"symbolAliases":[{"foreign":{"id":58880,"name":"SubnetActorRewardFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"304:22:105","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58883,"nodeType":"ImportDirective","src":"380:97:105","nodes":[],"absolutePath":"src/subnet/SubnetActorCheckpointingFacet.sol","file":"../../src/subnet/SubnetActorCheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":58923,"sourceUnit":50578,"symbolAliases":[{"foreign":{"id":58882,"name":"SubnetActorCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"388:29:105","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58922,"nodeType":"ContractDefinition","src":"479:455:105","nodes":[{"id":58903,"nodeType":"FunctionDefinition","src":"631:124:105","nodes":[],"body":{"id":58902,"nodeType":"Block","src":"692:63:105","nodes":[],"statements":[{"expression":{"arguments":[{"id":58899,"name":"_configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58893,"src":"727:20:105","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":58896,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"702:10:105","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":58898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"713:13:105","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46128,"src":"702:24:105","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":58900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"702:46:105","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58901,"nodeType":"ExpressionStatement","src":"702:46:105"}]},"functionSelector":"350a14bf","implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"640:13:105","parameters":{"id":58894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58893,"mutability":"mutable","name":"_configurationNumber","nameLocation":"661:20:105","nodeType":"VariableDeclaration","scope":58903,"src":"654:27:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58892,"name":"uint64","nodeType":"ElementaryTypeName","src":"654:6:105","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"653:29:105"},"returnParameters":{"id":58895,"nodeType":"ParameterList","parameters":[],"src":"692:0:105"},"scope":58922,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58921,"nodeType":"FunctionDefinition","src":"761:171:105","nodes":[],"body":{"id":58920,"nodeType":"Block","src":"799:133:105","nodes":[],"statements":[{"assignments":[58907,null],"declarations":[{"constant":false,"id":58907,"mutability":"mutable","name":"nextConfigNum","nameLocation":"817:13:105","nodeType":"VariableDeclaration","scope":58920,"src":"810:20:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58906,"name":"uint64","nodeType":"ElementaryTypeName","src":"810:6:105","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":58911,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58908,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"836:10:105","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":58909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"847:23:105","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":45918,"src":"836:34:105","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view returns (uint64,uint64)"}},"id":58910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"836:36:105","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"809:63:105"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58915,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58907,"src":"907:13:105","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":58916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"923:1:105","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"907:17:105","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":58912,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46129,"src":"882:10:105","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46129_$","typeString":"type(library LibStaking)"}},"id":58914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"893:13:105","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46128,"src":"882:24:105","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":58918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:43:105","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58919,"nodeType":"ExpressionStatement","src":"882:43:105"}]},"functionSelector":"c7ebdaef","implemented":true,"kind":"function","modifiers":[],"name":"confirmNextChange","nameLocation":"770:17:105","parameters":{"id":58904,"nodeType":"ParameterList","parameters":[],"src":"787:2:105"},"returnParameters":{"id":58905,"nodeType":"ParameterList","parameters":[],"src":"799:0:105"},"scope":58922,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":58884,"name":"SubnetActorPauseFacet","nameLocations":["511:21:105"],"nodeType":"IdentifierPath","referencedDeclaration":51991,"src":"511:21:105"},"id":58885,"nodeType":"InheritanceSpecifier","src":"511:21:105"},{"baseName":{"id":58886,"name":"SubnetActorManagerFacet","nameLocations":["538:23:105"],"nodeType":"IdentifierPath","referencedDeclaration":51946,"src":"538:23:105"},"id":58887,"nodeType":"InheritanceSpecifier","src":"538:23:105"},{"baseName":{"id":58888,"name":"SubnetActorRewardFacet","nameLocations":["567:22:105"],"nodeType":"IdentifierPath","referencedDeclaration":52158,"src":"567:22:105"},"id":58889,"nodeType":"InheritanceSpecifier","src":"567:22:105"},{"baseName":{"id":58890,"name":"SubnetActorCheckpointingFacet","nameLocations":["595:29:105"],"nodeType":"IdentifierPath","referencedDeclaration":50577,"src":"595:29:105"},"id":58891,"nodeType":"InheritanceSpecifier","src":"595:29:105"}],"canonicalName":"SubnetActorMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58922,50577,52158,51946,51991,43385,43966,47288,40372],"name":"SubnetActorMock","nameLocation":"488:15:105","scope":58923,"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":105} \ No newline at end of file diff --git a/contracts/.out/SubnetActorPauseFacet.sol/SubnetActorPauseFacet.json b/contracts/.out/SubnetActorPauseFacet.sol/SubnetActorPauseFacet.json new file mode 100644 index 000000000..72ad3bd0f --- /dev/null +++ b/contracts/.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/contracts/.out/SubnetActorRewardFacet.sol/SubnetActorRewardFacet.json b/contracts/.out/SubnetActorRewardFacet.sol/SubnetActorRewardFacet.json new file mode 100644 index 000000000..6930fd68f --- /dev/null +++ b/contracts/.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/contracts/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json b/contracts/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json new file mode 100644 index 000000000..d0019d257 --- /dev/null +++ b/contracts/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json @@ -0,0 +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: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/contracts/.out/SubnetIDHelper.sol/SubnetIDHelper.json b/contracts/.out/SubnetIDHelper.sol/SubnetIDHelper.json new file mode 100644 index 000000000..e51467422 --- /dev/null +++ b/contracts/.out/SubnetIDHelper.sol/SubnetIDHelper.json @@ -0,0 +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":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/contracts/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json b/contracts/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json new file mode 100644 index 000000000..14ad46a0d --- /dev/null +++ b/contracts/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json @@ -0,0 +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":[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/contracts/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json b/contracts/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json new file mode 100644 index 000000000..9d076d5e3 --- /dev/null +++ b/contracts/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json @@ -0,0 +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:104:-:0;;;;;;;;;;;;;-1:-1:-1;;814:4673:104;;;;-1:-1:-1;;;;;814:4673:104;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;;;;;;;;;;;1767:61;814:4673;;;1767:61;814:4673;1838:59;814:4673;;;1838:59;814:4673;;;;;;;;;;;-1:-1:-1;814:4673:104;;;;;;-1:-1:-1;814:4673:104;;;;;-1:-1:-1;814:4673:104","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:104:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:32;814:4673;2963:32;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:104;;;;;;:::i;:::-;2010:19;814:4673;;;-1:-1:-1;;;2010:47:104;;-1:-1:-1;;;;;814:4673:104;;;;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:104;;;;;-1:-1:-1;814:4673:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:104;;;;;;:::i;:::-;;-1:-1:-1;;;;;814:4673:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:7;;3354:44;;;;:67;;;;814:4673;3350:142;;814:4673;1056:2;-1:-1:-1;;;;;814:4673:104;;;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:104;;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:104;;;;:::i;:::-;;814:4673;;1404:2;;;4476:9;4487:13;814:4673;;;4487:13;;;;-1:-1:-1;814:4673:104;;;;-1:-1:-1;814:4673:104;;1404:2;814:4673;1404:2;:::i;:::-;1287:3;;;814:4673;4685:46;;;1287:3;;;;1237:2;814:4673;;;-1:-1:-1;;;4761:32:104;;814:4673;;;;;-1:-1:-1;;;;;814:4673:104;4761:32;;;;;;;;;;;4471:90;814:4673;;;;;1404:2;;;:::i;:::-;814:4673;;;;;;;1404:2;;;;:::i;:::-;814:4673;;;4618:99:76;814:4673:104;4618:99:76;;1404:2:104;814:4673;;;;1287:3;814:4673;;;-1:-1:-1;;;;;1287:3:104;814:4673;;;;;;1287:3;814:4673;;;;;;1287:3;;;-1:-1:-1;;;;;814:4673:104;;;;4624:684;;1404:2;4624:684;;1287:3;;;814:4673;4624:684;;1287:3;-1:-1:-1;;;;;814:4673:104;;;;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:104;;-1:-1:-1;;;;;814:4673:104;;;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:104;;;;;;;5403:42;;814:4673;;5403:42;;1220:14:3;814:4673:104;1220:14:3;;;814:4673:104;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;814:4673:104;1220:14:3;;;814:4673:104;1220:14:3;;;814:4673:104;1220:14:3;;;;;;;814:4673:104;;;;;;;;;;;1220:14:3;;;;;;;;-1:-1:-1;;;814:4673:104;4624:684;;1220:14:3;-1:-1:-1;;;;;814:4673:104;;1220:14:3;;814:4673:104;;4624:684;;1220:14:3;814:4673:104;1287:3;;;;;814:4673;1220:14:3;;;814:4673:104;4624:684;;1220:14:3;814:4673:104;1220:14:3;;814:4673:104;-1:-1:-1;;;;;814:4673:104;4624:684;;1220:14:3;814:4673:104;;1220:14:3;;814:4673:104;-1:-1:-1;;;;;814:4673:104;4624:684;;1220:14:3;814:4673:104;;1220:14:3;;814:4673:104;;;4624:684;;1220:14:3;814:4673:104;;1220:14:3;;;814:4673:104;;4624:684;;1220:14:3;814:4673:104;;1220:14:3;;;814:4673:104;4624:684;;1220:14:3;;;;814:4673:104;;4624:684;;1220:14:3;814:4673:104;;1220:14:3;;;;4624:684:104;;;1220:14:3;814:4673:104;1287:3;;;;;1220:14:3;;;;4624:684:104;;1220:14:3;;;;;;;;;;;;;814:4673:104;1220:14:3;;;;-1:-1:-1;;;;;814:4673:104;1220:14:3;;;814:4673:104;;1220:14:3;;5403:42:104;;;;1220:14:3;;;;5403:42:104;;;;;;;8399:50:36;5403:42:104;;;1220:14:3;-1:-1:-1;;;;;;814:4673:104;8399:50:36;:::i;:::-;;814:4673:104;;5403:42;;;814:4673;5403:42;814:4673;5403:42;;;;;;;:::i;:::-;;;;;1220:14:3;-1:-1:-1;;;1287:3:104;;;814:4673;1287:3;814:4673;1404:2;1287:3;1220:14:3;;;-1:-1:-1;;;;;814:4673:104;;;;;;;;;;;;;1220:14:3;;;5378:15:104;-1:-1:-1;;;;;814:4673:104;;;;;;;;;5378:15;;;;814:4673;-1:-1:-1;;;814:4673:104;;;;;;1404:2;814:4673;5378:15;814:4673;;;;;;;;;5378:15;814:4673;;;;-1:-1:-1;;;814:4673:104;;;;;;1404:2;814:4673;4761:32;;;;;814:4673;4761:32;814:4673;4761:32;;;;;;;:::i;:::-;;;;;;814:4673;;;;;;;;;4502:3;-1:-1:-1;;;;;814:4673:104;;4521:29;814:4673;4521:29;;:::i;:::-;1404:2;-1:-1:-1;;1404:2:104;;;;814:4673;1404:2;4476:9;;1404:2;-1:-1:-1;;;1404:2:104;;;814:4673;1404:2;814:4673;1404:2;;4241:162;1404:2;;-1:-1:-1;4241:162:104;;4245:81;814:4673;;;;;4299:27;4245:81;;4121:111;1453:7;;-1:-1:-1;4121:111:104;;4125:49;4154:20;;;4125:49;;4055:57;814:4673;;-1:-1:-1;4055:57:104;;3914:132;814:4673;;-1:-1:-1;3914:132:104;;3918:62;3961:19;;;3918:62;;;3808:97;1237:2;;-1:-1:-1;3808:97:104;;3666:133;1185:2;;-1:-1:-1;3666:133:104;;3670:53;814:4673;;;;;;3698:25;3670:53;;3501:156;1056:2;;-1:-1:-1;3501:156:104;;3505:77;814:4673;-1:-1:-1;;;;;814:4673:104;;;3557:25;3505:77;;3350:142;3437:44;;;3350:142;;;3354:67;3402:19;;;3354:67;;814:4673;;;;;;;-1:-1:-1;;814:4673:104;;;;;;:::i;:::-;;;;;:::i;:::-;2191:19;814:4673;;;-1:-1:-1;;;2191:58:104;;-1:-1:-1;;;;;814:4673:104;;;;2191:58;;814:4673;-1:-1:-1;;;;;814:4673:104;;;;;;;;;;;;;;;;2191:58;;;;;;;814:4673;2191:58;;;;814:4673;;;;;;;;;;;;;;;;;;;;;2963:19;814:4673;;;-1:-1:-1;;;2963:32:104;;814:4673;-1:-1:-1;;;;;814:4673:104;2963:32;;814:4673;;;;;;;;2963:32;;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2356:19;814:4673;-1:-1:-1;;;2356:42:104;;-1:-1:-1;;;;;814:4673:104;;;;2356:42;;814:4673;;2356:42;;;;;;;;;;;814:4673;;;-1:-1:-1;;;;;814:4673:104;;;;;;;2356:42;;;;;;;;;;;;;;;;;:::i;:::-;;;814:4673;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;2356:42;;;;;814:4673;;;;2356:42;;;;;;814:4673;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;;:::o;:::-;1404:2;;;814:4673;;;;;;;;;;1404:2;;;814:4673;;;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;814:4673:104;;;;;;;:::o;1404:2::-;-1:-1:-1;;;;;1404:2:104;;;;;;;;;:::o;:::-;814:4673;;1404:2;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2215:404:36;-1:-1:-1;814:4673:104;;;4352:12:36;814:4673:104;;;;;;;;5455:12;814:4673;;;;;;;4352:12:36;814:4673:104;;;5455:12;814:4673;;;;;;;;;;;;;5455:12;814:4673;;;;4352:12:36;814:4673:104;;;;4352:12:36;2548:11;:::o;814:4673:104:-;-1:-1:-1;;;1404:2:104;;;;;;;;2294:319:36;2590:12;;;:::o;2476:297:104:-;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:104;;;-1:-1:-1;814:4673:104;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;814:4673:104;2720:36;;814:4673;;;2720:36;:::i;:::-;814:4673;;2713:43;:::o;814:4673::-;1404:2;;;-1:-1:-1;814:4673:104;;;;;-1:-1:-1;814:4673:104;;;;;;;;;;;;;-1:-1:-1;814:4673:104;;;;;;;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":58872,"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":[58871],"SupplySourceHelper":[48351],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5442:104","nodes":[{"id":58464,"nodeType":"PragmaDirective","src":"46:23:104","nodes":[],"literals":["solidity","0.8",".19"]},{"id":58465,"nodeType":"ImportDirective","src":"71:32:104","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":58466,"nodeType":"ImportDirective","src":"104:33:104","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":58468,"nodeType":"ImportDirective","src":"138:46:104","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":58467,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58470,"nodeType":"ImportDirective","src":"185:88:104","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../../../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":52287,"symbolAliases":[{"foreign":{"id":58469,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"193:19:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58472,"nodeType":"ImportDirective","src":"274:84:104","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../../../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":52525,"symbolAliases":[{"foreign":{"id":58471,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"282:17:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58474,"nodeType":"ImportDirective","src":"359:71:104","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":58473,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"367:18:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58476,"nodeType":"ImportDirective","src":"431:77:104","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../../../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":58475,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"439:21:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58478,"nodeType":"ImportDirective","src":"509:67:104","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../../../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":58477,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"517:13:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58481,"nodeType":"ImportDirective","src":"577:73:104","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":50183,"symbolAliases":[{"foreign":{"id":58479,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"585:8:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":58480,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"595:14:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58483,"nodeType":"ImportDirective","src":"651:75:104","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":48352,"symbolAliases":[{"foreign":{"id":58482,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"659:18:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58485,"nodeType":"ImportDirective","src":"727:85:104","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":58872,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":58484,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"735:13:104","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58871,"nodeType":"ContractDefinition","src":"814:4673:104","nodes":[{"id":58495,"nodeType":"UsingForDirective","src":"886:49:104","nodes":[],"global":false,"libraryName":{"id":58492,"name":"EnumerableSet","nameLocations":["892:13:104"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"892:13:104"},"typeName":{"id":58494,"nodeType":"UserDefinedTypeName","pathNode":{"id":58493,"name":"EnumerableSet.AddressSet","nameLocations":["910:13:104","924:10:104"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"910:24:104"},"referencedDeclaration":35528,"src":"910:24:104","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":58501,"nodeType":"VariableDeclaration","src":"941:65:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"966:24:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58496,"name":"address","nodeType":"ElementaryTypeName","src":"941:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":58499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:4:104","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":58498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"993:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58497,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:104","typeDescriptions":{}}},"id":58500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"993:13:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":58504,"nodeType":"VariableDeclaration","src":"1012:46:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"1028:25:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58502,"name":"uint64","nodeType":"ElementaryTypeName","src":"1012:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":58503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1056:2:104","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":58507,"nodeType":"VariableDeclaration","src":"1064:62:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"1089:27:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":58506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:7:104","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"private"},{"id":58510,"nodeType":"VariableDeclaration","src":"1132:55:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"1155:27:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58508,"name":"uint8","nodeType":"ElementaryTypeName","src":"1132:5:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":58509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:2:104","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"private"},{"id":58513,"nodeType":"VariableDeclaration","src":"1193:46:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"1215:19:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":58511,"name":"int8","nodeType":"ElementaryTypeName","src":"1193:4:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3138","id":58512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1237:2:104","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"private"},{"id":58516,"nodeType":"VariableDeclaration","src":"1245:45:104","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"1269:15:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58514,"name":"uint64","nodeType":"ElementaryTypeName","src":"1245:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":58515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1287:3:104","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"private"},{"id":58519,"nodeType":"VariableDeclaration","src":"1296:50:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"1320:22:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58517,"name":"uint64","nodeType":"ElementaryTypeName","src":"1296:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":58518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1345:1:104","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":58522,"nodeType":"VariableDeclaration","src":"1352:54:104","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS","nameLocation":"1376:25:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":58520,"name":"uint16","nodeType":"ElementaryTypeName","src":"1352:6:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3530","id":58521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1404:2:104","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"private"},{"id":58525,"nodeType":"VariableDeclaration","src":"1412:48:104","nodes":[],"constant":true,"mutability":"constant","name":"CROSS_MSG_FEE","nameLocation":"1437:13:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58523,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":58524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1453:7:104","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"private"},{"id":58528,"nodeType":"VariableDeclaration","src":"1467:45:104","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_owners","nameLocation":"1500:12:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":58527,"nodeType":"UserDefinedTypeName","pathNode":{"id":58526,"name":"EnumerableSet.AddressSet","nameLocations":["1467:13:104","1481:10:104"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1467:24:104"},"referencedDeclaration":35528,"src":"1467:24:104","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":58531,"nodeType":"VariableDeclaration","src":"1518:47:104","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacet","nameLocation":"1546:19:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":58530,"nodeType":"UserDefinedTypeName","pathNode":{"id":58529,"name":"RegisterSubnetFacet","nameLocations":["1518:19:104"],"nodeType":"IdentifierPath","referencedDeclaration":52286,"src":"1518:19:104"},"referencedDeclaration":52286,"src":"1518:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"visibility":"private"},{"id":58534,"nodeType":"VariableDeclaration","src":"1571:45:104","nodes":[],"constant":false,"mutability":"mutable","name":"registerGetterFacet","nameLocation":"1597:19:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"},"typeName":{"id":58533,"nodeType":"UserDefinedTypeName","pathNode":{"id":58532,"name":"SubnetGetterFacet","nameLocations":["1571:17:104"],"nodeType":"IdentifierPath","referencedDeclaration":52524,"src":"1571:17:104"},"referencedDeclaration":52524,"src":"1571:17:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"visibility":"private"},{"id":58536,"nodeType":"VariableDeclaration","src":"1623:39:104","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetAddr","nameLocation":"1639:23:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58535,"name":"address","nodeType":"ElementaryTypeName","src":"1623:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":58538,"nodeType":"VariableDeclaration","src":"1668:37:104","nodes":[],"constant":false,"mutability":"mutable","name":"subnetGetterFacetAddr","nameLocation":"1684:21:104","scope":58871,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58537,"name":"address","nodeType":"ElementaryTypeName","src":"1668:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":58563,"nodeType":"FunctionDefinition","src":"1712:192:104","nodes":[],"body":{"id":58562,"nodeType":"Block","src":"1757:147:104","nodes":[],"statements":[{"expression":{"id":58551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58544,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58531,"src":"1767:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":58548,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58541,"src":"1817:9:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":58547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1809:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58546,"name":"address","nodeType":"ElementaryTypeName","src":"1809:7:104","typeDescriptions":{}}},"id":58549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58545,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52286,"src":"1789:19:104","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegisterSubnetFacet_$52286_$","typeString":"type(contract RegisterSubnetFacet)"}},"id":58550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:39:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"src":"1767:61:104","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"id":58552,"nodeType":"ExpressionStatement","src":"1767:61:104"},{"expression":{"id":58560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58553,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58534,"src":"1838:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":58557,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58541,"src":"1886:9:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":58556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1878:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58555,"name":"address","nodeType":"ElementaryTypeName","src":"1878:7:104","typeDescriptions":{}}},"id":58558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:18:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58554,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52524,"src":"1860:17:104","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetGetterFacet_$52524_$","typeString":"type(contract SubnetGetterFacet)"}},"id":58559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:37:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"src":"1838:59:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58561,"nodeType":"ExpressionStatement","src":"1838:59:104"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58541,"mutability":"mutable","name":"_registry","nameLocation":"1746:9:104","nodeType":"VariableDeclaration","scope":58563,"src":"1724:31:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":58540,"nodeType":"UserDefinedTypeName","pathNode":{"id":58539,"name":"SubnetRegistryDiamond","nameLocations":["1724:21:104"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"1724:21:104"},"referencedDeclaration":36853,"src":"1724:21:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"1723:33:104"},"returnParameters":{"id":58543,"nodeType":"ParameterList","parameters":[],"src":"1757:0:104"},"scope":58871,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58576,"nodeType":"FunctionDefinition","src":"1910:154:104","nodes":[],"body":{"id":58575,"nodeType":"Block","src":"1993:71:104","nodes":[],"statements":[{"expression":{"arguments":[{"id":58572,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58565,"src":"2051:5:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58570,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58534,"src":"2010:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2030:20:104","memberName":"latestSubnetDeployed","nodeType":"MemberAccess","referencedDeclaration":52342,"src":"2010:40:104","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_address_$","typeString":"function (address) view external returns (address)"}},"id":58573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:47:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58569,"id":58574,"nodeType":"Return","src":"2003:54:104"}]},"functionSelector":"ce75761f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedBy","nameLocation":"1919:19:104","parameters":{"id":58566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58565,"mutability":"mutable","name":"owner","nameLocation":"1947:5:104","nodeType":"VariableDeclaration","scope":58576,"src":"1939:13:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58564,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:104"},"returnParameters":{"id":58569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58568,"mutability":"mutable","name":"subnet","nameLocation":"1985:6:104","nodeType":"VariableDeclaration","scope":58576,"src":"1977:14:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58567,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1976:16:104"},"scope":58871,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58592,"nodeType":"FunctionDefinition","src":"2070:186:104","nodes":[],"body":{"id":58591,"nodeType":"Block","src":"2174:82:104","nodes":[],"statements":[{"expression":{"arguments":[{"id":58587,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58578,"src":"2236:5:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58588,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58580,"src":"2243:5:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":58585,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58534,"src":"2191:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2211:24:104","memberName":"getSubnetDeployedByNonce","nodeType":"MemberAccess","referencedDeclaration":52381,"src":"2191:44:104","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint64_$returns$_t_address_$","typeString":"function (address,uint64) view external returns (address)"}},"id":58589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:58:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58584,"id":58590,"nodeType":"Return","src":"2184:65:104"}]},"functionSelector":"58b1bc92","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedWithNonce","nameLocation":"2079:26:104","parameters":{"id":58581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58578,"mutability":"mutable","name":"owner","nameLocation":"2114:5:104","nodeType":"VariableDeclaration","scope":58592,"src":"2106:13:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58577,"name":"address","nodeType":"ElementaryTypeName","src":"2106:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58580,"mutability":"mutable","name":"nonce","nameLocation":"2128:5:104","nodeType":"VariableDeclaration","scope":58592,"src":"2121:12:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58579,"name":"uint64","nodeType":"ElementaryTypeName","src":"2121:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2105:29:104"},"returnParameters":{"id":58584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58583,"mutability":"mutable","name":"subnet","nameLocation":"2166:6:104","nodeType":"VariableDeclaration","scope":58592,"src":"2158:14:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58582,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2157:16:104"},"scope":58871,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58605,"nodeType":"FunctionDefinition","src":"2262:143:104","nodes":[],"body":{"id":58604,"nodeType":"Block","src":"2339:66:104","nodes":[],"statements":[{"expression":{"arguments":[{"id":58601,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58594,"src":"2393:4:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58599,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58534,"src":"2356:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:16:104","memberName":"getUserLastNonce","nodeType":"MemberAccess","referencedDeclaration":52405,"src":"2356:36:104","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint64_$","typeString":"function (address) view external returns (uint64)"}},"id":58602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2356:42:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":58598,"id":58603,"nodeType":"Return","src":"2349:49:104"}]},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"2271:16:104","parameters":{"id":58595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58594,"mutability":"mutable","name":"user","nameLocation":"2296:4:104","nodeType":"VariableDeclaration","scope":58605,"src":"2288:12:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58593,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2287:14:104"},"returnParameters":{"id":58598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58597,"mutability":"mutable","name":"nonce","nameLocation":"2332:5:104","nodeType":"VariableDeclaration","scope":58605,"src":"2325:12:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2325:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2324:14:104"},"scope":58871,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58643,"nodeType":"FunctionDefinition","src":"2476:297:104","nodes":[],"body":{"id":58642,"nodeType":"Block","src":"2559:214:104","nodes":[],"statements":[{"assignments":[58614],"declarations":[{"constant":false,"id":58614,"mutability":"mutable","name":"lenght","nameLocation":"2577:6:104","nodeType":"VariableDeclaration","scope":58642,"src":"2569:14:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58613,"name":"uint256","nodeType":"ElementaryTypeName","src":"2569:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58618,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58615,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"2586:12:104","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2599:6:104","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2586:19:104","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":58617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2586:21:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2569:38:104"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58619,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58614,"src":"2621:6:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2631:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2621:11:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58622,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58608,"src":"2636:4:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"34","id":58623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2643:1:104","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2636:8:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2636:13:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2621:28:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":58640,"nodeType":"Block","src":"2699:68:104","statements":[{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58632,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"2720:12:104","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2733:6:104","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2720:19:104","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":58634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2720:21:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":58638,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58635,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58608,"src":"2742:4:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":58636,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58614,"src":"2749:6:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2742:13:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2720:36:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58612,"id":58639,"nodeType":"Return","src":"2713:43:104"}]},"id":58641,"nodeType":"IfStatement","src":"2617:150:104","trueBody":{"id":58631,"nodeType":"Block","src":"2651:42:104","statements":[{"expression":{"expression":{"id":58628,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2672:3:104","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2676:6:104","memberName":"sender","nodeType":"MemberAccess","src":"2672:10:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58612,"id":58630,"nodeType":"Return","src":"2665:17:104"}]}}]},"documentation":{"id":58606,"nodeType":"StructuredDocumentation","src":"2411:60:104","text":"getRandomOldAddressOrNewOne returns a new random address"},"implemented":true,"kind":"function","modifiers":[],"name":"getRandomOldAddressOrNewOne","nameLocation":"2485:27:104","parameters":{"id":58609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58608,"mutability":"mutable","name":"seed","nameLocation":"2521:4:104","nodeType":"VariableDeclaration","scope":58643,"src":"2513:12:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58607,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2512:14:104"},"returnParameters":{"id":58612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58643,"src":"2550:7:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58610,"name":"address","nodeType":"ElementaryTypeName","src":"2550:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2549:9:104"},"scope":58871,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":58654,"nodeType":"FunctionDefinition","src":"2779:107:104","nodes":[],"body":{"id":58653,"nodeType":"Block","src":"2841:45:104","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58649,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"2858:12:104","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2871:6:104","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2858:19:104","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":58651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:21:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":58648,"id":58652,"nodeType":"Return","src":"2851:28:104"}]},"functionSelector":"a0e67e2b","implemented":true,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"2788:9:104","parameters":{"id":58644,"nodeType":"ParameterList","parameters":[],"src":"2797:2:104"},"returnParameters":{"id":58648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58654,"src":"2823:16:104","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58645,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58646,"nodeType":"ArrayTypeName","src":"2823:9:104","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2822:18:104"},"scope":58871,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58664,"nodeType":"FunctionDefinition","src":"2892:110:104","nodes":[],"body":{"id":58663,"nodeType":"Block","src":"2946:56:104","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58659,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58534,"src":"2963:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2983:10:104","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52415,"src":"2963:30:104","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":58661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:32:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":58658,"id":58662,"nodeType":"Return","src":"2956:39:104"}]},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"2901:10:104","parameters":{"id":58655,"nodeType":"ParameterList","parameters":[],"src":"2911:2:104"},"returnParameters":{"id":58658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58664,"src":"2937:7:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58656,"name":"address","nodeType":"ElementaryTypeName","src":"2937:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2936:9:104"},"scope":58871,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":58870,"nodeType":"FunctionDefinition","src":"3008:2477:104","nodes":[],"body":{"id":58869,"nodeType":"Block","src":"3340:2145:104","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58685,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58666,"src":"3354:14:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58686,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58507,"src":"3371:27:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3354:44:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58688,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58666,"src":"3402:14:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3420:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3402:19:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3354:67:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58697,"nodeType":"IfStatement","src":"3350:142:104","trueBody":{"id":58696,"nodeType":"Block","src":"3423:69:104","statements":[{"expression":{"id":58694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58692,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58666,"src":"3437:14:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58693,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58507,"src":"3454:27:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3437:44:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58695,"nodeType":"ExpressionStatement","src":"3437:44:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58698,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58670,"src":"3505:20:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58699,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58504,"src":"3528:25:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3505:48:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58701,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58670,"src":"3557:20:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3581:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3557:25:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3505:77:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58710,"nodeType":"IfStatement","src":"3501:156:104","trueBody":{"id":58709,"nodeType":"Block","src":"3584:73:104","statements":[{"expression":{"id":58707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58705,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58670,"src":"3598:20:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58706,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58504,"src":"3621:25:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3598:48:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":58708,"nodeType":"ExpressionStatement","src":"3598:48:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58711,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58674,"src":"3670:19:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":58712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3692:2:104","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"3670:24:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58714,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58674,"src":"3698:19:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":58715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:3:104","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3698:25:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3670:53:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58723,"nodeType":"IfStatement","src":"3666:133:104","trueBody":{"id":58722,"nodeType":"Block","src":"3725:74:104","statements":[{"expression":{"id":58720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58718,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58674,"src":"3739:19:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58719,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58510,"src":"3761:27:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3739:49:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":58721,"nodeType":"ExpressionStatement","src":"3739:49:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":58726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58724,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58680,"src":"3812:11:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58725,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58513,"src":"3826:19:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3812:33:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58732,"nodeType":"IfStatement","src":"3808:97:104","trueBody":{"id":58731,"nodeType":"Block","src":"3847:58:104","statements":[{"expression":{"id":58729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58727,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58680,"src":"3861:11:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58728,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58513,"src":"3875:19:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3861:33:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":58730,"nodeType":"ExpressionStatement","src":"3861:33:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58733,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58668,"src":"3918:14:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58734,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58519,"src":"3935:22:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:39:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":58738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58736,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58668,"src":"3961:14:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3979:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3961:19:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3918:62:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58745,"nodeType":"IfStatement","src":"3914:132:104","trueBody":{"id":58744,"nodeType":"Block","src":"3982:64:104","statements":[{"expression":{"id":58742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58740,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58668,"src":"3996:14:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58741,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58519,"src":"4013:22:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3996:39:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":58743,"nodeType":"ExpressionStatement","src":"3996:39:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58746,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58678,"src":"4059:9:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":58747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4071:1:104","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"4059:13:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58754,"nodeType":"IfStatement","src":"4055:57:104","trueBody":{"id":58753,"nodeType":"Block","src":"4074:38:104","statements":[{"expression":{"id":58751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58749,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58678,"src":"4088:9:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":58750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4100:1:104","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4088:13:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":58752,"nodeType":"ExpressionStatement","src":"4088:13:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58755,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58676,"src":"4125:15:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":58756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4143:7:104","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"4125:25:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58758,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58676,"src":"4154:15:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4154:20:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4125:49:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58767,"nodeType":"IfStatement","src":"4121:111:104","trueBody":{"id":58766,"nodeType":"Block","src":"4176:56:104","statements":[{"expression":{"id":58764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58762,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58676,"src":"4190:15:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58763,"name":"CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58525,"src":"4208:13:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4190:31:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58765,"nodeType":"ExpressionStatement","src":"4190:31:104"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":58770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58768,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58672,"src":"4245:22:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58769,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58522,"src":"4270:25:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4245:50:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":58773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58771,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58672,"src":"4299:22:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4325:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4299:27:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4245:81:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58780,"nodeType":"IfStatement","src":"4241:162:104","trueBody":{"id":58779,"nodeType":"Block","src":"4328:75:104","statements":[{"expression":{"id":58777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58775,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58672,"src":"4342:22:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58776,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58522,"src":"4367:25:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4342:50:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":58778,"nodeType":"ExpressionStatement","src":"4342:50:104"}]}},{"assignments":[58785],"declarations":[{"constant":false,"id":58785,"mutability":"mutable","name":"path","nameLocation":"4430:4:104","nodeType":"VariableDeclaration","scope":58869,"src":"4413:21:104","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58783,"name":"address","nodeType":"ElementaryTypeName","src":"4413:7:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58784,"nodeType":"ArrayTypeName","src":"4413:9:104","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":58791,"initialValue":{"arguments":[{"id":58789,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58678,"src":"4451:9:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4437:13:104","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":58786,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58787,"nodeType":"ArrayTypeName","src":"4441:9:104","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":58790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:24:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4413:48:104"},{"body":{"id":58813,"nodeType":"Block","src":"4507:54:104","statements":[{"expression":{"id":58811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58801,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58785,"src":"4521:4:104","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":58803,"indexExpression":{"id":58802,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58793,"src":"4526:1:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4521:7:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":58808,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58793,"src":"4547:1:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58806,"name":"uint160","nodeType":"ElementaryTypeName","src":"4539:7:104","typeDescriptions":{}}},"id":58809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:10:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4531:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58804,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:104","typeDescriptions":{}}},"id":58810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:19:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4521:29:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58812,"nodeType":"ExpressionStatement","src":"4521:29:104"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58793,"src":"4487:1:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":58796,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58678,"src":"4491:9:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4487:13:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58814,"initializationExpression":{"assignments":[58793],"declarations":[{"constant":false,"id":58793,"mutability":"mutable","name":"i","nameLocation":"4484:1:104","nodeType":"VariableDeclaration","scope":58814,"src":"4476:9:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4476:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58794,"nodeType":"VariableDeclarationStatement","src":"4476:9:104"},"loopExpression":{"expression":{"id":58799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4502:3:104","subExpression":{"id":58798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58793,"src":"4504:1:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58800,"nodeType":"ExpressionStatement","src":"4502:3:104"},"nodeType":"ForStatement","src":"4471:90:104"},{"assignments":[58819],"declarations":[{"constant":false,"id":58819,"mutability":"mutable","name":"params","nameLocation":"4615:6:104","nodeType":"VariableDeclaration","scope":58869,"src":"4571:50:104","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":58818,"nodeType":"UserDefinedTypeName","pathNode":{"id":58817,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["4571:18:104","4590:17:104"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"4571:36:104"},"referencedDeclaration":36253,"src":"4571:36:104","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":58844,"initialValue":{"arguments":[{"arguments":[{"id":58823,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58516,"src":"4701:15:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":58824,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58785,"src":"4725:4:104","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":58822,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50030,"src":"4685:8:104","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50030_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":58825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4695:4:104","4718:5:104"],"names":["root","route"],"nodeType":"FunctionCall","src":"4685:46:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50030_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58826,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58534,"src":"4761:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52524","typeString":"contract SubnetGetterFacet"}},"id":58827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4781:10:104","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52415,"src":"4761:30:104","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":58828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:32:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":58829,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"4818:13:104","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":58830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4832:10:104","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"4818:24:104","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":58831,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58666,"src":"4881:14:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58832,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58668,"src":"4924:14:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":58833,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58670,"src":"4973:20:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":58834,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58674,"src":"5027:19:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":58835,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58672,"src":"5083:22:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":58836,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58680,"src":"5131:11:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"expression":{"id":58837,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50118,"src":"5172:14:104","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50118_$","typeString":"type(enum PermissionMode)"}},"id":58838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5187:10:104","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50115,"src":"5172:25:104","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50118","typeString":"enum PermissionMode"}},{"id":58839,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58676,"src":"5227:15:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58840,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"5270:18:104","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48351_$","typeString":"type(library SupplySourceHelper)"}},"id":58841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:104","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48350,"src":"5270:25:104","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50179_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":58842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5270:27:104","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":58820,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"4624:18:104","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":58821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4643:17:104","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"4624:36:104","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":58843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4675:8:104","4745:14:104","4807:9:104","4856:23:104","4909:13:104","4952:19:104","5007:18:104","5060:21:104","5119:10:104","5156:14:104","5211:14:104","5256:12:104"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"4624:684:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4571:737:104"},{"assignments":[58846],"declarations":[{"constant":false,"id":58846,"mutability":"mutable","name":"owner","nameLocation":"5327:5:104","nodeType":"VariableDeclaration","scope":58869,"src":"5319:13:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58845,"name":"address","nodeType":"ElementaryTypeName","src":"5319:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58850,"initialValue":{"arguments":[{"id":58848,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58682,"src":"5363:4:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58847,"name":"getRandomOldAddressOrNewOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58643,"src":"5335:27:104","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":58849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5335:33:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5319:49:104"},{"expression":{"arguments":[{"id":58854,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58846,"src":"5387:5:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5378:2:104","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":58853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:5:104","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"5378:8:104","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:15:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58856,"nodeType":"ExpressionStatement","src":"5378:15:104"},{"expression":{"arguments":[{"id":58860,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58819,"src":"5438:6:104","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":58857,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58531,"src":"5403:19:104","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52286","typeString":"contract RegisterSubnetFacet"}},"id":58859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5423:14:104","memberName":"newSubnetActor","nodeType":"MemberAccess","referencedDeclaration":52285,"src":"5403:34:104","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":58861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5403:42:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58862,"nodeType":"ExpressionStatement","src":"5403:42:104"},{"expression":{"arguments":[{"id":58866,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58846,"src":"5472:5:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58863,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"5455:12:104","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":58865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5468:3:104","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"5455:16:104","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":58867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5455:23:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58868,"nodeType":"ExpressionStatement","src":"5455:23:104"}]},"functionSelector":"64675ce8","implemented":true,"kind":"function","modifiers":[],"name":"deploySubnetActorFromRegistry","nameLocation":"3017:29:104","parameters":{"id":58683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58666,"mutability":"mutable","name":"_minCollateral","nameLocation":"3064:14:104","nodeType":"VariableDeclaration","scope":58870,"src":"3056:22:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58665,"name":"uint256","nodeType":"ElementaryTypeName","src":"3056:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58668,"mutability":"mutable","name":"_minValidators","nameLocation":"3095:14:104","nodeType":"VariableDeclaration","scope":58870,"src":"3088:21:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58667,"name":"uint64","nodeType":"ElementaryTypeName","src":"3088:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":58670,"mutability":"mutable","name":"_bottomUpCheckPeriod","nameLocation":"3126:20:104","nodeType":"VariableDeclaration","scope":58870,"src":"3119:27:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":58669,"name":"uint64","nodeType":"ElementaryTypeName","src":"3119:6:104","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":58672,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"3163:22:104","nodeType":"VariableDeclaration","scope":58870,"src":"3156:29:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":58671,"name":"uint16","nodeType":"ElementaryTypeName","src":"3156:6:104","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":58674,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"3201:19:104","nodeType":"VariableDeclaration","scope":58870,"src":"3195:25:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58673,"name":"uint8","nodeType":"ElementaryTypeName","src":"3195:5:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58676,"mutability":"mutable","name":"_minCrossMsgFee","nameLocation":"3238:15:104","nodeType":"VariableDeclaration","scope":58870,"src":"3230:23:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58675,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58678,"mutability":"mutable","name":"_pathSize","nameLocation":"3269:9:104","nodeType":"VariableDeclaration","scope":58870,"src":"3263:15:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58677,"name":"uint8","nodeType":"ElementaryTypeName","src":"3263:5:104","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58680,"mutability":"mutable","name":"_powerScale","nameLocation":"3293:11:104","nodeType":"VariableDeclaration","scope":58870,"src":"3288:16:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":58679,"name":"int8","nodeType":"ElementaryTypeName","src":"3288:4:104","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":58682,"mutability":"mutable","name":"seed","nameLocation":"3322:4:104","nodeType":"VariableDeclaration","scope":58870,"src":"3314:12:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58681,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3046:286:104"},"returnParameters":{"id":58684,"nodeType":"ParameterList","parameters":[],"src":"3340:0:104"},"scope":58871,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58486,"name":"CommonBase","nameLocations":["848:10:104"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"848:10:104"},"id":58487,"nodeType":"InheritanceSpecifier","src":"848:10:104"},{"baseName":{"id":58488,"name":"StdCheats","nameLocations":["860:9:104"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"860:9:104"},"id":58489,"nodeType":"InheritanceSpecifier","src":"860:9:104"},{"baseName":{"id":58490,"name":"StdUtils","nameLocations":["871:8:104"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"871:8:104"},"id":58491,"nodeType":"InheritanceSpecifier","src":"871:8:104"}],"canonicalName":"SubnetRegistryHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58871,12691,8180,7501,3777],"name":"SubnetRegistryHandler","nameLocation":"823:21:104","scope":58872,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":104} \ No newline at end of file diff --git a/contracts/.out/SupplySourceHelper.sol/SupplySourceHelper.json b/contracts/.out/SupplySourceHelper.sol/SupplySourceHelper.json new file mode 100644 index 000000000..ccc678562 --- /dev/null +++ b/contracts/.out/SupplySourceHelper.sol/SupplySourceHelper.json @@ -0,0 +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":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/contracts/.out/TestUtils.sol/TestUtils.json b/contracts/.out/TestUtils.sol/TestUtils.json new file mode 100644 index 000000000..52e7e668a --- /dev/null +++ b/contracts/.out/TestUtils.sol/TestUtils.json @@ -0,0 +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:100:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:100;;;;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:100;;;-1:-1:-1;;163:5276:100;;;;;:::i;:::-;;;;;;-1:-1:-1;;;163:5276:100;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:100;;;;;;-1:-1:-1;163:5276:100;;;-1:-1:-1;;163:5276:100;;;;;660:44;163:5276;;660:44;:::i;:::-;163:5276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:66;163:5276;;;;-1:-1:-1;163:5276:100;;-1:-1:-1;;163:5276:100;;;;;;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:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:100;;;;;8360:1:0;-1:-1:-1;;926:16:0;1003:7;;;490:66:100;;;;;3254:23:0;;;490:66:100;;;;3300:22:0;;490:66:100;-1:-1:-1;;490:66:100;;;3356:24:0;3345:41;;8046:405;:::o;996:169::-;163:5276:100;;;;;;;;-1:-1:-1;;163:5276:100;;1086:20:0;490:66:100;;163:5276;490:66;;163:5276;;;;-1:-1:-1;;490:66:100;1069:44:0;1050:64;1138:16;;163:5276:100;;;;;;;;;;;;;;;;;;;;;;1128:26:0;;;996:169;;163:5276:100;;;;;;;;;;;;;;;-1:-1:-1;;;163:5276:100;;;;;;;;;;;;-1:-1:-1;;;163:5276:100;;;;;;;842:32:0;;8360:1;842:32;;:20;-1:-1:-1;;853:9:0;;;-1:-1:-1;842:20:0;;;12886:800;216:66:100;12886:800:0;317:66:100;8360:1:0;13192:7;;;13188:57;;163:5276:100;;;;13255:22:0;;;;13403:14;;;13660:19;;;;;;12886:800;:::o;13396:255::-;8360:1;13438:13;;13433:109;;13396:255;163:5276:100;13609:31:0;163:5276:100;8360:1:0;163:5276:100;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:100:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8838:1966:0;;;;;;;9126:8;;:20;;;8838:1966;9122:48;;9184:8;;:20;;;8838:1966;9180:48;;163:5276:100;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;490:66:100;;9437:21:0;;;163:5276:100;;;;;;;;9476:23:0;;;163:5276:100;;9517:21:0;;;;163:5276:100;;;;;;;;;;;;9556:23:0;;;163:5276:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:23:0;163:5276:100;;;;;9672:23:0;;9621:158;;;163:5276:100;9621:158:0;;163:5276:100;;;;9709:23:0;;9621:158;;;;163:5276:100;;;;;9746:23:0;;9621:158;163:5276:100;9621:158:0;;163:5276:100;;;;9898:14:0;;;;:32;;;8838:1966;163:5276:100;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;10044:31:0;;;163:5276:100;;;;;;;;;;;;10105:31:0;;;163:5276:100;;;;;;;;;;;10168:25:0;;;;163:5276:100;;;;;;;10226:25:0;163:5276:100;;;;;;;;;;;;;;;;;;;;;10401:25:0;;9512:1;10391:41;163:5276:100;;;;;;;10315:25:0;;;;;;;;;10308:51;10374:64;163:5276:100;;;;;;10549:25:0;;163:5276:100;;;;;;;;;;;;;;;10649:25:0;;163:5276:100;;;;;;;;;;;;;;;;;10778:19:0;10542:48;;10503:114;;10632:48;10741:21;;10727:41;;8838:1966;:::o;163:5276:100:-;;;-1:-1:-1;;;163:5276:100;;;;;;;;;;;;;;;;;;;;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:100;;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:100;;;;;;;12230:17:0;;;;;;12223:55;163:5276:100;;;;;;;;;12414:17:0;;;;;12411:1;12404:33;163:5276:100;;;;;;;;12548:16:0;;;;;;;;;;;12355:23;;12345:39;;12325:139;12512:19;;12509:1;12502:35;11091:1480;:::o;163:5276:100:-;-1:-1:-1;;;163:5276:100;;;11840:1:0;163:5276:100;;;;;-1:-1:-1;;;163:5276:100;;;11840:1:0;163:5276:100;;;;;-1:-1:-1;;;163:5276:100;;;11840:1:0;163:5276:100;;;;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":57849,"exportedSymbols":{"DSTest":[3720],"EllipticCurve":[1129],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"TestUtils":[57848],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5394:100","nodes":[{"id":57062,"nodeType":"PragmaDirective","src":"46:23:100","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57063,"nodeType":"ImportDirective","src":"71:28:100","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":57849,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":57064,"nodeType":"ImportDirective","src":"100:61:100","nodes":[],"absolutePath":"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol","file":"elliptic-curve-solidity/contracts/EllipticCurve.sol","nameLocation":"-1:-1:-1","scope":57849,"sourceUnit":1130,"symbolAliases":[],"unitAlias":""},{"id":57848,"nodeType":"ContractDefinition","src":"163:5276:100","nodes":[{"id":57067,"nodeType":"VariableDeclaration","src":"187:95:100","nodes":[],"constant":true,"functionSelector":"03a507be","mutability":"constant","name":"GX","nameLocation":"211:2:100","scope":57848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57065,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837394245363637454639444342424143353541303632393543453837304230373032394246434442324443453238443935394632383135423136463831373938","id":57066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216:66:100","typeDescriptions":{"typeIdentifier":"t_rational_55066263022277343669578718895168534326250603453777594175500187360389116729240_by_1","typeString":"int_const 5506...(69 digits omitted)...9240"},"value":"0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"},"visibility":"public"},{"id":57070,"nodeType":"VariableDeclaration","src":"288:95:100","nodes":[],"constant":true,"functionSelector":"7a308a4c","mutability":"constant","name":"GY","nameLocation":"312:2:100","scope":57848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57068,"name":"uint256","nodeType":"ElementaryTypeName","src":"288:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307834383341444137373236413343343635354441344642464330453131303841384644313742343438413638353534313939433437443038464642313044344238","id":57069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:66:100","typeDescriptions":{"typeIdentifier":"t_rational_32670510020758816978083085130507043184471273380659243275938904335757337482424_by_1","typeString":"int_const 3267...(69 digits omitted)...2424"},"value":"0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"},"visibility":"public"},{"id":57073,"nodeType":"VariableDeclaration","src":"389:30:100","nodes":[],"constant":true,"functionSelector":"997da8d4","mutability":"constant","name":"AA","nameLocation":"413:2:100","scope":57848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57071,"name":"uint256","nodeType":"ElementaryTypeName","src":"389:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":57072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"418:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":57076,"nodeType":"VariableDeclaration","src":"425:30:100","nodes":[],"constant":true,"functionSelector":"5727dc5c","mutability":"constant","name":"BB","nameLocation":"449:2:100","scope":57848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57074,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":57075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"454:1:100","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"public"},{"id":57079,"nodeType":"VariableDeclaration","src":"461:95:100","nodes":[],"constant":true,"functionSelector":"eeeac01e","mutability":"constant","name":"PP","nameLocation":"485:2:100","scope":57848,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57077,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646454646464646433246","id":57078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"490:66:100","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007908834671663_by_1","typeString":"int_const 1157...(70 digits omitted)...1663"},"value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F"},"visibility":"public"},{"id":57098,"nodeType":"FunctionDefinition","src":"563:148:100","nodes":[],"body":{"id":57097,"nodeType":"Block","src":"643:68:100","nodes":[],"statements":[{"expression":{"arguments":[{"id":57090,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57081,"src":"680:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57091,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57067,"src":"689:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57092,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57070,"src":"693:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57093,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57073,"src":"697:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57094,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57079,"src":"701:2:100","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":57088,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"660:13:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":57089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"674:5:100","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"660:19:100","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":57095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"660:44:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":57087,"id":57096,"nodeType":"Return","src":"653:51:100"}]},"functionSelector":"bc9e2bcf","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"572:12:100","parameters":{"id":57082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57081,"mutability":"mutable","name":"privKey","nameLocation":"593:7:100","nodeType":"VariableDeclaration","scope":57098,"src":"585:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57080,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:17:100"},"returnParameters":{"id":57087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57098,"src":"625:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57083,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57098,"src":"634:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57085,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"624:18:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":57125,"nodeType":"FunctionDefinition","src":"717:222:100","nodes":[],"body":{"id":57124,"nodeType":"Block","src":"796:143:100","nodes":[],"statements":[{"assignments":[57106,57108],"declarations":[{"constant":false,"id":57106,"mutability":"mutable","name":"pubKeyX","nameLocation":"815:7:100","nodeType":"VariableDeclaration","scope":57124,"src":"807:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57105,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57108,"mutability":"mutable","name":"pubKeyY","nameLocation":"832:7:100","nodeType":"VariableDeclaration","scope":57124,"src":"824:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57107,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57117,"initialValue":{"arguments":[{"id":57111,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57100,"src":"863:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57112,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57067,"src":"872:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57113,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57070,"src":"876:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57114,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57073,"src":"880:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57115,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57079,"src":"884:2:100","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":57109,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"843:13:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":57110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"857:5:100","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"843:19:100","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":57116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:44:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"806:81:100"},{"expression":{"arguments":[{"id":57120,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"915:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57121,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57108,"src":"924:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"904:3:100","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"908:6:100","memberName":"encode","nodeType":"MemberAccess","src":"904:10:100","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":57122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:28:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":57104,"id":57123,"nodeType":"Return","src":"897:35:100"}]},"functionSelector":"f6caf0ac","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKeyBytes","nameLocation":"726:17:100","parameters":{"id":57101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57100,"mutability":"mutable","name":"privKey","nameLocation":"752:7:100","nodeType":"VariableDeclaration","scope":57125,"src":"744:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57099,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"743:17:100"},"returnParameters":{"id":57104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57125,"src":"782:12:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57102,"name":"bytes","nodeType":"ElementaryTypeName","src":"782:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"781:14:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":57156,"nodeType":"FunctionDefinition","src":"945:353:100","nodes":[],"body":{"id":57155,"nodeType":"Block","src":"1033:265:100","nodes":[],"statements":[{"assignments":[57133,57135],"declarations":[{"constant":false,"id":57133,"mutability":"mutable","name":"pubKeyX","nameLocation":"1052:7:100","nodeType":"VariableDeclaration","scope":57155,"src":"1044:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57132,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57135,"mutability":"mutable","name":"pubKeyY","nameLocation":"1069:7:100","nodeType":"VariableDeclaration","scope":57155,"src":"1061:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57144,"initialValue":{"arguments":[{"id":57138,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57127,"src":"1100:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57139,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57067,"src":"1109:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57140,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57070,"src":"1113:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57141,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57073,"src":"1117:2:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57142,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57079,"src":"1121:2:100","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":57136,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"1080:13:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":57137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:5:100","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"1080:19:100","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":57143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:44:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1043:81:100"},{"expression":{"arguments":[{"arguments":[{"hexValue":"307834","id":57149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1268:3:100","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":57148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:5:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":57147,"name":"uint8","nodeType":"ElementaryTypeName","src":"1262:5:100","typeDescriptions":{}}},"id":57150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:10:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":57151,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57133,"src":"1274:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57152,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57135,"src":"1283:7:100","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":57145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1245:3:100","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1249:12:100","memberName":"encodePacked","nodeType":"MemberAccess","src":"1245:16:100","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":57153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1245:46:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":57131,"id":57154,"nodeType":"Return","src":"1238:53:100"}]},"functionSelector":"573081a2","implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorPubKeyBytes","nameLocation":"954:26:100","parameters":{"id":57128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57127,"mutability":"mutable","name":"privKey","nameLocation":"989:7:100","nodeType":"VariableDeclaration","scope":57156,"src":"981:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57126,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"980:17:100"},"returnParameters":{"id":57131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57156,"src":"1019:12:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57129,"name":"bytes","nodeType":"ElementaryTypeName","src":"1019:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1018:14:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":57344,"nodeType":"FunctionDefinition","src":"1304:934:100","nodes":[],"body":{"id":57343,"nodeType":"Block","src":"1456:782:100","nodes":[],"statements":[{"expression":{"id":57177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57171,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1466:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":57175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1496:1:100","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":57174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1482:13:100","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":57172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57173,"nodeType":"ArrayTypeName","src":"1486:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1466:32:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57178,"nodeType":"ExpressionStatement","src":"1466:32:100"},{"expression":{"id":57183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57179,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1508:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57181,"indexExpression":{"hexValue":"30","id":57180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1508:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57184,"nodeType":"ExpressionStatement","src":"1508:22:100"},{"expression":{"id":57189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57185,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1540:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57187,"indexExpression":{"hexValue":"31","id":57186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1554:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":57188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1559:3:100","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1540:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57190,"nodeType":"ExpressionStatement","src":"1540:22:100"},{"expression":{"id":57195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57191,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1572:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57193,"indexExpression":{"hexValue":"32","id":57192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1586:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":57194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1591:3:100","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"1572:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57196,"nodeType":"ExpressionStatement","src":"1572:22:100"},{"expression":{"id":57201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57197,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1604:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57199,"indexExpression":{"hexValue":"33","id":57198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1618:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"343030","id":57200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:3:100","typeDescriptions":{"typeIdentifier":"t_rational_400_by_1","typeString":"int_const 400"},"value":"400"},"src":"1604:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57202,"nodeType":"ExpressionStatement","src":"1604:22:100"},{"expression":{"id":57209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57203,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57166,"src":"1637:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":57207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1663:1:100","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":57206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1649:13:100","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":57204,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57205,"nodeType":"ArrayTypeName","src":"1653:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":57208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"1637:28:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57210,"nodeType":"ExpressionStatement","src":"1637:28:100"},{"expression":{"id":57220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57211,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57166,"src":"1675:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57213,"indexExpression":{"hexValue":"30","id":57212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1685:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57216,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1698:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57218,"indexExpression":{"hexValue":"30","id":57217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1712:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57214,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1690:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1693:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1690:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1675:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57221,"nodeType":"ExpressionStatement","src":"1675:40:100"},{"expression":{"id":57231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57222,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57166,"src":"1725:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57224,"indexExpression":{"hexValue":"31","id":57223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57227,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1748:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57229,"indexExpression":{"hexValue":"31","id":57228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1762:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57225,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1740:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1743:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1740:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1725:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57232,"nodeType":"ExpressionStatement","src":"1725:40:100"},{"expression":{"id":57242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57233,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57166,"src":"1775:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57235,"indexExpression":{"hexValue":"32","id":57234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57238,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1798:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57240,"indexExpression":{"hexValue":"32","id":57239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1812:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57236,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1790:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1793:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1790:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1775:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57243,"nodeType":"ExpressionStatement","src":"1775:40:100"},{"expression":{"id":57253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57244,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57166,"src":"1825:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57246,"indexExpression":{"hexValue":"33","id":57245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57249,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1848:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57251,"indexExpression":{"hexValue":"33","id":57250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57247,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1840:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1843:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1840:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1840:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1825:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57254,"nodeType":"ExpressionStatement","src":"1825:40:100"},{"expression":{"id":57261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57255,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57169,"src":"1876:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":57259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:1:100","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":57258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1886:13:100","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":57256,"name":"uint256","nodeType":"ElementaryTypeName","src":"1890:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57257,"nodeType":"ArrayTypeName","src":"1890:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1886:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1876:26:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57262,"nodeType":"ExpressionStatement","src":"1876:26:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57268,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1928:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57270,"indexExpression":{"hexValue":"30","id":57269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1942:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57266,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1920:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1920:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1947:1:100","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":57263,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1912:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1912:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57274,"nodeType":"ExpressionStatement","src":"1912:37:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57280,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"1975:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57282,"indexExpression":{"hexValue":"31","id":57281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1989:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57278,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1967:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1970:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1967:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1967:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1994:1:100","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":57275,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"1959:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1962:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1959:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1959:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57286,"nodeType":"ExpressionStatement","src":"1959:37:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57292,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"2022:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57294,"indexExpression":{"hexValue":"32","id":57293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57290,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"2014:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2014:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2041:1:100","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":57287,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"2006:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2009:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2006:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57298,"nodeType":"ExpressionStatement","src":"2006:37:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57304,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57163,"src":"2069:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57306,"indexExpression":{"hexValue":"33","id":57305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2083:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57302,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"2061:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2064:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2061:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2088:1:100","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":57299,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"2053:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2056:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2053:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2053:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57310,"nodeType":"ExpressionStatement","src":"2053:37:100"},{"expression":{"id":57317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57311,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57169,"src":"2101:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":57315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2125:1:100","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":57314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2111:13:100","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":57312,"name":"uint256","nodeType":"ElementaryTypeName","src":"2115:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57313,"nodeType":"ArrayTypeName","src":"2115:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2101:26:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57318,"nodeType":"ExpressionStatement","src":"2101:26:100"},{"expression":{"id":57323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57319,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57169,"src":"2137:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57321,"indexExpression":{"hexValue":"30","id":57320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2150:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2137:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57324,"nodeType":"ExpressionStatement","src":"2137:16:100"},{"expression":{"id":57329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57325,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57169,"src":"2163:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57327,"indexExpression":{"hexValue":"31","id":57326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2171:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2176:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2163:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57330,"nodeType":"ExpressionStatement","src":"2163:16:100"},{"expression":{"id":57335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57331,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57169,"src":"2189:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57333,"indexExpression":{"hexValue":"32","id":57332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2189:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57336,"nodeType":"ExpressionStatement","src":"2189:16:100"},{"expression":{"id":57341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57337,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57169,"src":"2215:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57339,"indexExpression":{"hexValue":"33","id":57338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2228:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2215:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57342,"nodeType":"ExpressionStatement","src":"2215:16:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getFourValidators","nameLocation":"1313:17:100","parameters":{"id":57160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57159,"mutability":"mutable","name":"vm","nameLocation":"1343:2:100","nodeType":"VariableDeclaration","scope":57344,"src":"1340:5:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":57158,"nodeType":"UserDefinedTypeName","pathNode":{"id":57157,"name":"Vm","nameLocations":["1340:2:100"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"1340:2:100"},"referencedDeclaration":14222,"src":"1340:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"1330:21:100"},"returnParameters":{"id":57170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57163,"mutability":"mutable","name":"validatorKeys","nameLocation":"1387:13:100","nodeType":"VariableDeclaration","scope":57344,"src":"1370:30:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":57161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57162,"nodeType":"ArrayTypeName","src":"1370:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":57166,"mutability":"mutable","name":"addresses","nameLocation":"1419:9:100","nodeType":"VariableDeclaration","scope":57344,"src":"1402:26:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57164,"name":"address","nodeType":"ElementaryTypeName","src":"1402:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57165,"nodeType":"ArrayTypeName","src":"1402:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":57169,"mutability":"mutable","name":"weights","nameLocation":"1447:7:100","nodeType":"VariableDeclaration","scope":57344,"src":"1430:24:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":57167,"name":"uint256","nodeType":"ElementaryTypeName","src":"1430:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57168,"nodeType":"ArrayTypeName","src":"1430:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1369:86:100"},"scope":57848,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57497,"nodeType":"FunctionDefinition","src":"2244:780:100","nodes":[],"body":{"id":57496,"nodeType":"Block","src":"2397:627:100","nodes":[],"statements":[{"expression":{"id":57365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57359,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2407:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":57363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2437:1:100","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":57362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2423:13:100","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":57360,"name":"uint256","nodeType":"ElementaryTypeName","src":"2427:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57361,"nodeType":"ArrayTypeName","src":"2427:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2407:32:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57366,"nodeType":"ExpressionStatement","src":"2407:32:100"},{"expression":{"id":57371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57367,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2449:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57369,"indexExpression":{"hexValue":"30","id":57368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2468:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2449:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57372,"nodeType":"ExpressionStatement","src":"2449:22:100"},{"expression":{"id":57377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57373,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2481:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57375,"indexExpression":{"hexValue":"31","id":57374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":57376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2500:3:100","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"2481:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57378,"nodeType":"ExpressionStatement","src":"2481:22:100"},{"expression":{"id":57383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57379,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2513:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57381,"indexExpression":{"hexValue":"32","id":57380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2527:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":57382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2532:3:100","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"2513:22:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57384,"nodeType":"ExpressionStatement","src":"2513:22:100"},{"expression":{"id":57391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57385,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57354,"src":"2546:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":57389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2572:1:100","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":57388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2558:13:100","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":57386,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57387,"nodeType":"ArrayTypeName","src":"2562:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":57390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2558:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2546:28:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57392,"nodeType":"ExpressionStatement","src":"2546:28:100"},{"expression":{"id":57402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57393,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57354,"src":"2584:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57395,"indexExpression":{"hexValue":"30","id":57394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57398,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2607:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57400,"indexExpression":{"hexValue":"30","id":57399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2621:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57396,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2599:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2602:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2599:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2584:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57403,"nodeType":"ExpressionStatement","src":"2584:40:100"},{"expression":{"id":57413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57404,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57354,"src":"2634:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57406,"indexExpression":{"hexValue":"31","id":57405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57409,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2657:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57411,"indexExpression":{"hexValue":"31","id":57410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2671:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57407,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2649:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2652:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2649:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57414,"nodeType":"ExpressionStatement","src":"2634:40:100"},{"expression":{"id":57424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57415,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57354,"src":"2684:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57417,"indexExpression":{"hexValue":"32","id":57416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2694:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":57420,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2707:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57422,"indexExpression":{"hexValue":"32","id":57421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2721:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57418,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2699:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2702:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2699:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2699:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2684:40:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57425,"nodeType":"ExpressionStatement","src":"2684:40:100"},{"expression":{"id":57432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57426,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57357,"src":"2735:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":57430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2759:1:100","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":57429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2745:13:100","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":57427,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57428,"nodeType":"ArrayTypeName","src":"2749:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2735:26:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57433,"nodeType":"ExpressionStatement","src":"2735:26:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57439,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2787:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57441,"indexExpression":{"hexValue":"30","id":57440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57437,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2779:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2782:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2779:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:100","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":57434,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2771:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2771:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57445,"nodeType":"ExpressionStatement","src":"2771:37:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57451,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2834:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57453,"indexExpression":{"hexValue":"31","id":57452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57449,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2826:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2829:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2826:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2853:1:100","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":57446,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2818:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2821:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2818:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57457,"nodeType":"ExpressionStatement","src":"2818:37:100"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":57463,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57351,"src":"2881:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57465,"indexExpression":{"hexValue":"32","id":57464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2895:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57461,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2873:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2876:4:100","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2873:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":57466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2873:25:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":57467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:100","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":57458,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57347,"src":"2865:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:4:100","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2865:7:100","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":57468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2865:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57469,"nodeType":"ExpressionStatement","src":"2865:37:100"},{"expression":{"id":57476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57470,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57357,"src":"2913:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":57474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2937:1:100","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":57473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2923:13:100","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":57471,"name":"uint256","nodeType":"ElementaryTypeName","src":"2927:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57472,"nodeType":"ArrayTypeName","src":"2927:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2913:26:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57477,"nodeType":"ExpressionStatement","src":"2913:26:100"},{"expression":{"id":57482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57478,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57357,"src":"2949:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57480,"indexExpression":{"hexValue":"30","id":57479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2957:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":57481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2949:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57483,"nodeType":"ExpressionStatement","src":"2949:16:100"},{"expression":{"id":57488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57484,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57357,"src":"2975:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57486,"indexExpression":{"hexValue":"31","id":57485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313031","id":57487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2988:3:100","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"2975:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57489,"nodeType":"ExpressionStatement","src":"2975:16:100"},{"expression":{"id":57494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57490,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57357,"src":"3001:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57492,"indexExpression":{"hexValue":"32","id":57491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3009:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313032","id":57493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3014:3:100","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"3001:16:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57495,"nodeType":"ExpressionStatement","src":"3001:16:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getThreeValidators","nameLocation":"2253:18:100","parameters":{"id":57348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57347,"mutability":"mutable","name":"vm","nameLocation":"2284:2:100","nodeType":"VariableDeclaration","scope":57497,"src":"2281:5:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":57346,"nodeType":"UserDefinedTypeName","pathNode":{"id":57345,"name":"Vm","nameLocations":["2281:2:100"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"2281:2:100"},"referencedDeclaration":14222,"src":"2281:2:100","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"2271:21:100"},"returnParameters":{"id":57358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57351,"mutability":"mutable","name":"validatorKeys","nameLocation":"2328:13:100","nodeType":"VariableDeclaration","scope":57497,"src":"2311:30:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":57349,"name":"uint256","nodeType":"ElementaryTypeName","src":"2311:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57350,"nodeType":"ArrayTypeName","src":"2311:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":57354,"mutability":"mutable","name":"addresses","nameLocation":"2360:9:100","nodeType":"VariableDeclaration","scope":57497,"src":"2343:26:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57352,"name":"address","nodeType":"ElementaryTypeName","src":"2343:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57353,"nodeType":"ArrayTypeName","src":"2343:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":57357,"mutability":"mutable","name":"weights","nameLocation":"2388:7:100","nodeType":"VariableDeclaration","scope":57497,"src":"2371:24:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":57355,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57356,"nodeType":"ArrayTypeName","src":"2371:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2310:86:100"},"scope":57848,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57571,"nodeType":"FunctionDefinition","src":"3030:433:100","nodes":[],"body":{"id":57570,"nodeType":"Block","src":"3129:334:100","nodes":[],"statements":[{"expression":{"id":57511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57506,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3139:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":57509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3156:2:100","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":57508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3146:9:100","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57507,"name":"bytes","nodeType":"ElementaryTypeName","src":"3150:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3146:13:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3139:20:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57512,"nodeType":"ExpressionStatement","src":"3139:20:100"},{"expression":{"id":57520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57513,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3169:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57515,"indexExpression":{"hexValue":"31","id":57514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3174:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57518,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57499,"src":"3186:3:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3179:6:100","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":57516,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3179:6:100","typeDescriptions":{}}},"id":57519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3179:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3169:21:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57521,"nodeType":"ExpressionStatement","src":"3169:21:100"},{"assignments":[57523],"declarations":[{"constant":false,"id":57523,"mutability":"mutable","name":"dataSubset","nameLocation":"3251:10:100","nodeType":"VariableDeclaration","scope":57570,"src":"3238:23:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57522,"name":"bytes","nodeType":"ElementaryTypeName","src":"3238:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57531,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57526,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3274:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3279:6:100","memberName":"length","nodeType":"MemberAccess","src":"3274:11:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3274:15:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3264:9:100","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57524,"name":"bytes","nodeType":"ElementaryTypeName","src":"3268:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:26:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3238:52:100"},{"body":{"id":57553,"nodeType":"Block","src":"3339:52:100","statements":[{"expression":{"id":57551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57543,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57523,"src":"3353:10:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57547,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57544,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57533,"src":"3364:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3364:5:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3353:17:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":57548,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3373:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57550,"indexExpression":{"id":57549,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57533,"src":"3378:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3373:7:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3353:27:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57552,"nodeType":"ExpressionStatement","src":"3353:27:100"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57536,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57533,"src":"3317:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57537,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3321:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:6:100","memberName":"length","nodeType":"MemberAccess","src":"3321:11:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3317:15:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57554,"initializationExpression":{"assignments":[57533],"declarations":[{"constant":false,"id":57533,"mutability":"mutable","name":"i","nameLocation":"3310:1:100","nodeType":"VariableDeclaration","scope":57554,"src":"3305:6:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57532,"name":"uint","nodeType":"ElementaryTypeName","src":"3305:4:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57535,"initialValue":{"hexValue":"31","id":57534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3314:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"3305:10:100"},"loopExpression":{"expression":{"id":57541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3334:3:100","subExpression":{"id":57540,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57533,"src":"3334:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57542,"nodeType":"ExpressionStatement","src":"3334:3:100"},"nodeType":"ForStatement","src":"3300:91:100"},{"expression":{"id":57568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57555,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57502,"src":"3401:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":57563,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57523,"src":"3442:10:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57562,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3432:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:21:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3424:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":57560,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:100","typeDescriptions":{}}},"id":57565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:30:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3416:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57558,"name":"uint160","nodeType":"ElementaryTypeName","src":"3416:7:100","typeDescriptions":{}}},"id":57566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:39:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3408:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57556,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:100","typeDescriptions":{}}},"id":57567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3408:48:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3401:55:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57569,"nodeType":"ExpressionStatement","src":"3401:55:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorAddress","nameLocation":"3039:22:100","parameters":{"id":57500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57499,"mutability":"mutable","name":"seq","nameLocation":"3068:3:100","nodeType":"VariableDeclaration","scope":57571,"src":"3062:9:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57498,"name":"uint8","nodeType":"ElementaryTypeName","src":"3062:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3061:11:100"},"returnParameters":{"id":57505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57502,"mutability":"mutable","name":"addr","nameLocation":"3104:4:100","nodeType":"VariableDeclaration","scope":57571,"src":"3096:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57501,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57504,"mutability":"mutable","name":"data","nameLocation":"3123:4:100","nodeType":"VariableDeclaration","scope":57571,"src":"3110:17:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57503,"name":"bytes","nodeType":"ElementaryTypeName","src":"3110:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3095:33:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57614,"nodeType":"FunctionDefinition","src":"3469:331:100","nodes":[],"body":{"id":57613,"nodeType":"Block","src":"3599:201:100","nodes":[],"statements":[{"expression":{"id":57584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57582,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57578,"src":"3609:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57583,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57573,"src":"3619:3:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:13:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57585,"nodeType":"ExpressionStatement","src":"3609:13:100"},{"assignments":[57587],"declarations":[{"constant":false,"id":57587,"mutability":"mutable","name":"pubkey","nameLocation":"3645:6:100","nodeType":"VariableDeclaration","scope":57613,"src":"3632:19:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57586,"name":"bytes","nodeType":"ElementaryTypeName","src":"3632:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57591,"initialValue":{"arguments":[{"id":57589,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57573,"src":"3672:3:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57588,"name":"derivePubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57125,"src":"3654:17:100","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":57590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3654:22:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3632:44:100"},{"expression":{"id":57596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57592,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57580,"src":"3686:12:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57594,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57573,"src":"3728:3:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57593,"name":"deriveValidatorPubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57156,"src":"3701:26:100","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":57595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3701:31:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3686:46:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57597,"nodeType":"ExpressionStatement","src":"3686:46:100"},{"expression":{"id":57611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57598,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57576,"src":"3742:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":57606,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57587,"src":"3783:6:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57605,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3773:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:17:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3765:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":57603,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:100","typeDescriptions":{}}},"id":57608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3765:26:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3757:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57601,"name":"uint160","nodeType":"ElementaryTypeName","src":"3757:7:100","typeDescriptions":{}}},"id":57609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3757:35:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3749:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57599,"name":"address","nodeType":"ElementaryTypeName","src":"3749:7:100","typeDescriptions":{}}},"id":57610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3749:44:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:51:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57612,"nodeType":"ExpressionStatement","src":"3742:51:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidator","nameLocation":"3478:12:100","parameters":{"id":57574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57573,"mutability":"mutable","name":"key","nameLocation":"3508:3:100","nodeType":"VariableDeclaration","scope":57614,"src":"3500:11:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57572,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3490:27:100"},"returnParameters":{"id":57581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57576,"mutability":"mutable","name":"addr","nameLocation":"3549:4:100","nodeType":"VariableDeclaration","scope":57614,"src":"3541:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57575,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57578,"mutability":"mutable","name":"privKey","nameLocation":"3563:7:100","nodeType":"VariableDeclaration","scope":57614,"src":"3555:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57577,"name":"uint256","nodeType":"ElementaryTypeName","src":"3555:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57580,"mutability":"mutable","name":"validatorKey","nameLocation":"3585:12:100","nodeType":"VariableDeclaration","scope":57614,"src":"3572:25:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57579,"name":"bytes","nodeType":"ElementaryTypeName","src":"3572:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:58:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57700,"nodeType":"FunctionDefinition","src":"3806:587:100","nodes":[],"body":{"id":57699,"nodeType":"Block","src":"3963:430:100","nodes":[],"statements":[{"expression":{"id":57634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57628,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57626,"src":"3973:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57632,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57616,"src":"4001:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3989:11:100","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":57629,"name":"bytes","nodeType":"ElementaryTypeName","src":"3993:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":57630,"nodeType":"ArrayTypeName","src":"3993:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":57633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:14:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"3973:30:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":57635,"nodeType":"ExpressionStatement","src":"3973:30:100"},{"expression":{"id":57642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57636,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57620,"src":"4013:10:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57640,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57616,"src":"4040:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4026:13:100","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":57637,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57638,"nodeType":"ArrayTypeName","src":"4030:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":57641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4026:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"4013:29:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57643,"nodeType":"ExpressionStatement","src":"4013:29:100"},{"expression":{"id":57650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57644,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57623,"src":"4052:8:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57648,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57616,"src":"4077:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4063:13:100","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":57645,"name":"uint256","nodeType":"ElementaryTypeName","src":"4067:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57646,"nodeType":"ArrayTypeName","src":"4067:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":57649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:16:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4052:27:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57651,"nodeType":"ExpressionStatement","src":"4052:27:100"},{"body":{"id":57692,"nodeType":"Block","src":"4119:213:100","statements":[{"assignments":[57663,57665,57667],"declarations":[{"constant":false,"id":57663,"mutability":"mutable","name":"addr","nameLocation":"4142:4:100","nodeType":"VariableDeclaration","scope":57692,"src":"4134:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57662,"name":"address","nodeType":"ElementaryTypeName","src":"4134:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57665,"mutability":"mutable","name":"key","nameLocation":"4156:3:100","nodeType":"VariableDeclaration","scope":57692,"src":"4148:11:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57664,"name":"uint256","nodeType":"ElementaryTypeName","src":"4148:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57667,"mutability":"mutable","name":"validatorKey","nameLocation":"4174:12:100","nodeType":"VariableDeclaration","scope":57692,"src":"4161:25:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57666,"name":"bytes","nodeType":"ElementaryTypeName","src":"4161:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57673,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":57669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:3:100","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":57670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57653,"src":"4209:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4203:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57668,"name":"newValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57614,"src":"4190:12:100","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":57672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4190:21:100","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:100"},{"expression":{"id":57678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57674,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57620,"src":"4225:10:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57676,"indexExpression":{"id":57675,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57653,"src":"4236:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4225:13:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57677,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57663,"src":"4241:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4225:20:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57679,"nodeType":"ExpressionStatement","src":"4225:20:100"},{"expression":{"id":57684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57680,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57626,"src":"4259:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":57682,"indexExpression":{"id":57681,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57653,"src":"4273:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4259:16:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57683,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57667,"src":"4278:12:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4259:31:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57685,"nodeType":"ExpressionStatement","src":"4259:31:100"},{"expression":{"id":57690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57686,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57623,"src":"4304:8:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":57688,"indexExpression":{"id":57687,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57653,"src":"4313:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4304:11:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57689,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57665,"src":"4318:3:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4304:17:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57691,"nodeType":"ExpressionStatement","src":"4304:17:100"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57653,"src":"4107:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":57657,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57616,"src":"4111:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4107:5:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57693,"initializationExpression":{"assignments":[57653],"declarations":[{"constant":false,"id":57653,"mutability":"mutable","name":"i","nameLocation":"4100:1:100","nodeType":"VariableDeclaration","scope":57693,"src":"4095:6:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57652,"name":"uint","nodeType":"ElementaryTypeName","src":"4095:4:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57655,"initialValue":{"hexValue":"30","id":57654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4104:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4095:10:100"},"loopExpression":{"expression":{"id":57660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4114:3:100","subExpression":{"id":57659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57653,"src":"4114:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57661,"nodeType":"ExpressionStatement","src":"4114:3:100"},"nodeType":"ForStatement","src":"4090:242:100"},{"expression":{"components":[{"id":57694,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57620,"src":"4350:10:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":57695,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57623,"src":"4362:8:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":57696,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57626,"src":"4372:13:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":57697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4349:37:100","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":57627,"id":57698,"nodeType":"Return","src":"4342:44:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidators","nameLocation":"3815:13:100","parameters":{"id":57617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57616,"mutability":"mutable","name":"n","nameLocation":"3846:1:100","nodeType":"VariableDeclaration","scope":57700,"src":"3838:9:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57615,"name":"uint256","nodeType":"ElementaryTypeName","src":"3838:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3828:25:100"},"returnParameters":{"id":57627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57620,"mutability":"mutable","name":"validators","nameLocation":"3894:10:100","nodeType":"VariableDeclaration","scope":57700,"src":"3877:27:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57618,"name":"address","nodeType":"ElementaryTypeName","src":"3877:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57619,"nodeType":"ArrayTypeName","src":"3877:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":57623,"mutability":"mutable","name":"privKeys","nameLocation":"3923:8:100","nodeType":"VariableDeclaration","scope":57700,"src":"3906:25:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":57621,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57622,"nodeType":"ArrayTypeName","src":"3906:9:100","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":57626,"mutability":"mutable","name":"validatorKeys","nameLocation":"3948:13:100","nodeType":"VariableDeclaration","scope":57700,"src":"3933:28:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":57624,"name":"bytes","nodeType":"ElementaryTypeName","src":"3933:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":57625,"nodeType":"ArrayTypeName","src":"3933:7:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3876:86:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57774,"nodeType":"FunctionDefinition","src":"4399:423:100","nodes":[],"body":{"id":57773,"nodeType":"Block","src":"4488:334:100","nodes":[],"statements":[{"expression":{"id":57714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57709,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57707,"src":"4498:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":57712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4515:2:100","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":57711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4505:9:100","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57710,"name":"bytes","nodeType":"ElementaryTypeName","src":"4509:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4498:20:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57715,"nodeType":"ExpressionStatement","src":"4498:20:100"},{"expression":{"id":57723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57716,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57707,"src":"4528:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57718,"indexExpression":{"hexValue":"31","id":57717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4533:1:100","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:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57721,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57702,"src":"4545:3:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4538:6:100","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":57719,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4538:6:100","typeDescriptions":{}}},"id":57722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4528:21:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57724,"nodeType":"ExpressionStatement","src":"4528:21:100"},{"assignments":[57726],"declarations":[{"constant":false,"id":57726,"mutability":"mutable","name":"dataSubset","nameLocation":"4610:10:100","nodeType":"VariableDeclaration","scope":57773,"src":"4597:23:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57725,"name":"bytes","nodeType":"ElementaryTypeName","src":"4597:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57734,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57729,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57707,"src":"4633:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4638:6:100","memberName":"length","nodeType":"MemberAccess","src":"4633:11:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4647:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4633:15:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4623:9:100","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":57727,"name":"bytes","nodeType":"ElementaryTypeName","src":"4627:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":57733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:26:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4597:52:100"},{"body":{"id":57756,"nodeType":"Block","src":"4698:52:100","statements":[{"expression":{"id":57754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57746,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57726,"src":"4712:10:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57750,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57747,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57736,"src":"4723:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4727:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4723:5:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4712:17:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":57751,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57707,"src":"4732:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57753,"indexExpression":{"id":57752,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57736,"src":"4737:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4732:7:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4712:27:100","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":57755,"nodeType":"ExpressionStatement","src":"4712:27:100"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57739,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57736,"src":"4676:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57740,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57707,"src":"4680:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4685:6:100","memberName":"length","nodeType":"MemberAccess","src":"4680:11:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4676:15:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57757,"initializationExpression":{"assignments":[57736],"declarations":[{"constant":false,"id":57736,"mutability":"mutable","name":"i","nameLocation":"4669:1:100","nodeType":"VariableDeclaration","scope":57757,"src":"4664:6:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57735,"name":"uint","nodeType":"ElementaryTypeName","src":"4664:4:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57738,"initialValue":{"hexValue":"31","id":57737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4673:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"4664:10:100"},"loopExpression":{"expression":{"id":57744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4693:3:100","subExpression":{"id":57743,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57736,"src":"4693:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57745,"nodeType":"ExpressionStatement","src":"4693:3:100"},"nodeType":"ForStatement","src":"4659:91:100"},{"expression":{"id":57771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57758,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57705,"src":"4760:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":57766,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57726,"src":"4801:10:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4791:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4791:21:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4783:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":57763,"name":"uint256","nodeType":"ElementaryTypeName","src":"4783:7:100","typeDescriptions":{}}},"id":57768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4783:30:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4775:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57761,"name":"uint160","nodeType":"ElementaryTypeName","src":"4775:7:100","typeDescriptions":{}}},"id":57769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:39:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4767:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57759,"name":"address","nodeType":"ElementaryTypeName","src":"4767:7:100","typeDescriptions":{}}},"id":57770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4767:48:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4760:55:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57772,"nodeType":"ExpressionStatement","src":"4760:55:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"4408:12:100","parameters":{"id":57703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57702,"mutability":"mutable","name":"seq","nameLocation":"4427:3:100","nodeType":"VariableDeclaration","scope":57774,"src":"4421:9:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57701,"name":"uint8","nodeType":"ElementaryTypeName","src":"4421:5:100","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4420:11:100"},"returnParameters":{"id":57708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57705,"mutability":"mutable","name":"addr","nameLocation":"4463:4:100","nodeType":"VariableDeclaration","scope":57774,"src":"4455:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57704,"name":"address","nodeType":"ElementaryTypeName","src":"4455:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57707,"mutability":"mutable","name":"data","nameLocation":"4482:4:100","nodeType":"VariableDeclaration","scope":57774,"src":"4469:17:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57706,"name":"bytes","nodeType":"ElementaryTypeName","src":"4469:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4454:33:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57802,"nodeType":"FunctionDefinition","src":"4828:213:100","nodes":[],"body":{"id":57801,"nodeType":"Block","src":"4902:139:100","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57782,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57776,"src":"4920:2:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4923:6:100","memberName":"length","nodeType":"MemberAccess","src":"4920:9:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57784,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57778,"src":"4933:2:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4936:6:100","memberName":"length","nodeType":"MemberAccess","src":"4933:9:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4920:22:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206c656e206e6f7420657175616c","id":57787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4944:21:100","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":57781,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4912:7:100","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4912:54:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57789,"nodeType":"ExpressionStatement","src":"4912:54:100"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":57797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":57792,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57776,"src":"4994:2:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4984:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:13:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":57795,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57778,"src":"5011:2:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57794,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5001:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":57796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5001:13:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4984:30:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206e6f7420657175616c","id":57798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5016:17:100","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":57790,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4976:7:100","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4976:58:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57800,"nodeType":"ExpressionStatement","src":"4976:58:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"ensureBytesEqual","nameLocation":"4837:16:100","parameters":{"id":57779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57776,"mutability":"mutable","name":"_a","nameLocation":"4867:2:100","nodeType":"VariableDeclaration","scope":57802,"src":"4854:15:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57775,"name":"bytes","nodeType":"ElementaryTypeName","src":"4854:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":57778,"mutability":"mutable","name":"_b","nameLocation":"4884:2:100","nodeType":"VariableDeclaration","scope":57802,"src":"4871:15:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57777,"name":"bytes","nodeType":"ElementaryTypeName","src":"4871:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4853:34:100"},"returnParameters":{"id":57780,"nodeType":"ParameterList","parameters":[],"src":"4902:0:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57847,"nodeType":"FunctionDefinition","src":"5098:339:100","nodes":[],"body":{"id":57846,"nodeType":"Block","src":"5247:190:100","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57814,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57805,"src":"5265:6:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5272:6:100","memberName":"length","nodeType":"MemberAccess","src":"5265:13:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57816,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57808,"src":"5282:6:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:100","memberName":"length","nodeType":"MemberAccess","src":"5282:13:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5265:30:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57819,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57810,"src":"5297:12:100","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":57813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5257:7:100","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:53:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57821,"nodeType":"ExpressionStatement","src":"5257:53:100"},{"body":{"id":57844,"nodeType":"Block","src":"5361:70:100","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":57840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":57834,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57805,"src":"5383:6:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57836,"indexExpression":{"id":57835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57823,"src":"5390:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5383:9:100","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":57837,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57808,"src":"5396:6:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57839,"indexExpression":{"id":57838,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57823,"src":"5403:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5396:9:100","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5383:22:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57841,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57810,"src":"5407:12:100","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":57833,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5375:7:100","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:45:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57843,"nodeType":"ExpressionStatement","src":"5375:45:100"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57826,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57823,"src":"5337:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57827,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57805,"src":"5341:6:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:6:100","memberName":"length","nodeType":"MemberAccess","src":"5341:13:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5337:17:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57845,"initializationExpression":{"assignments":[57823],"declarations":[{"constant":false,"id":57823,"mutability":"mutable","name":"i","nameLocation":"5330:1:100","nodeType":"VariableDeclaration","scope":57845,"src":"5325:6:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57822,"name":"uint","nodeType":"ElementaryTypeName","src":"5325:4:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57825,"initialValue":{"hexValue":"30","id":57824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5334:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5325:10:100"},"loopExpression":{"expression":{"id":57831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5356:3:100","subExpression":{"id":57830,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57823,"src":"5356:1:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57832,"nodeType":"ExpressionStatement","src":"5356:3:100"},"nodeType":"ForStatement","src":"5320:111:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateBytes4Array","nameLocation":"5107:19:100","parameters":{"id":57811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57805,"mutability":"mutable","name":"array1","nameLocation":"5152:6:100","nodeType":"VariableDeclaration","scope":57847,"src":"5136:22:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57803,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5136:6:100","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57804,"nodeType":"ArrayTypeName","src":"5136:8:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57808,"mutability":"mutable","name":"array2","nameLocation":"5184:6:100","nodeType":"VariableDeclaration","scope":57847,"src":"5168:22:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57806,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5168:6:100","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57807,"nodeType":"ArrayTypeName","src":"5168:8:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57810,"mutability":"mutable","name":"errorMessage","nameLocation":"5214:12:100","nodeType":"VariableDeclaration","scope":57847,"src":"5200:26:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":57809,"name":"string","nodeType":"ElementaryTypeName","src":"5200:6:100","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5126:106:100"},"returnParameters":{"id":57812,"nodeType":"ParameterList","parameters":[],"src":"5247:0:100"},"scope":57848,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[57848],"name":"TestUtils","nameLocation":"171:9:100","scope":57849,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":100} \ No newline at end of file diff --git a/contracts/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json b/contracts/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json new file mode 100644 index 000000000..1746f28c5 --- /dev/null +++ b/contracts/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json @@ -0,0 +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":"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/contracts/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json b/contracts/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json new file mode 100644 index 000000000..2db3676b1 --- /dev/null +++ b/contracts/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json @@ -0,0 +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":[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 diff --git a/contracts/Makefile b/contracts/Makefile index 7d9a7f0e9..86c5694d6 100644 --- a/contracts/Makefile +++ b/contracts/Makefile @@ -10,6 +10,12 @@ OUTPUT ?= out deploy-ipc: ./ops/deploy.sh $(NETWORK) +deploy-subnet-registry: + ./ops/deploy-subnet-registry.sh $(NETWORK) + +deploy-subnet: + ./ops/deploy-subnet.sh $(NETWORK) + upgrade-gw-diamond: ./ops/upgrade-gw-diamond.sh $(NETWORK) diff --git a/contracts/README.md b/contracts/README.md index b4048b92f..2f600a618 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -49,6 +49,48 @@ To deploy the contracts in some other network configured in the Hardhat config y make deploy-ipc NETWORK= ``` +# Upgrading IPC Solidity Contracts + +This repository's contracts use the Diamond pattern for upgradability, allowing new features to be added or issues to be corrected without a full redeployment. The upgrade process is automated and includes bytecode verification to ensure the integrity of the changes. + +## Automated Upgrade and Bytecode Verification + +When you run an upgrade command, the repository's scripts handle several tasks: + +1. **Bytecode Verification**: The scripts fetch the bytecode of the currently deployed contracts on an FEVM-powered IPC network using the details stored in local JSON files in the root directory of the git repository. They compare this with the bytecode generated after applying the intended changes on a temporary Ganache network. + +2. **Conditional Upgrades**: If the bytecode verification process detects changes that align with the intended upgrades, the `make` command conditionally triggers other scripts to perform the actual upgrade on the network. + +## Upgrade Commands + +To upgrade a contract, you may use the following commands. The NETWORK parameter is optional; if not specified, the scripts will default to "auto": + +- **Gateway Diamond Upgrade**: + + ```bash + make upgrade-gw-diamond [NETWORK=] + ``` + +- **Subnet Actor Diamond Upgrade**: + + ```bash + make upgrade-sa-diamond [NETWORK=] + ``` + +- **Subnet Registry Diamond Upgrade**: + ```bash + make upgrade-sr-diamond [NETWORK=] + ``` + +After running any of these commands, the scripts will provide transaction details for verification. Check the transaction on the appropriate block explorer to confirm the upgrade's success. + +## Important Notes + +- The upgrade commands are intended for use by authorized personnel with a deep understanding of the contracts' functionality. +- Ensure that your local repository is up to date with the latest contract code and JSON files before initiating an upgrade. +- Backup all contract data and thoroughly test any new code in a controlled environment prior to an upgrade. +- Monitor the output of the upgrade process carefully for transaction details and to verify its successful completion. + ## Branching Strategy ### Production branch diff --git a/contracts/binding/build.rs b/contracts/binding/build.rs index 8a31ae3d4..8c26dcbae 100644 --- a/contracts/binding/build.rs +++ b/contracts/binding/build.rs @@ -47,9 +47,12 @@ fn main() { "TopDownFinalityFacet", "XnetMessagingFacet", "GatewayMessengerFacet", + "SubnetActorCheckpointingFacet", "SubnetActorDiamond", "SubnetActorGetterFacet", "SubnetActorManagerFacet", + "SubnetActorPauseFacet", + "SubnetActorRewardFacet", "SubnetRegistryDiamond", "RegisterSubnetFacet", "SubnetGetterFacet", @@ -86,7 +89,8 @@ fn main() { "BottomUpRouterFacet", "XnetMessagingFacet", "GatewayMessengerFacet", - "SubnetActorManagerFacet", + "SubnetActorCheckpointingFacet", + "SubnetActorGetterFacet", "LibGateway", ]; @@ -101,7 +105,6 @@ fn main() { ) .unwrap(); let common_type_conversion = vec![ - ("GatewayGetterFacet", "SubnetActorManagerFacet"), ("SubnetActorGetterFacet", "BottomUpRouterFacet"), ("SubnetActorGetterFacet", "CheckpointingFacet"), ("SubnetActorGetterFacet", "XnetMessagingFacet"), diff --git a/contracts/binding/src/lib.rs b/contracts/binding/src/lib.rs index b2cbdee69..1137f5d44 100644 --- a/contracts/binding/src/lib.rs +++ b/contracts/binding/src/lib.rs @@ -24,12 +24,18 @@ pub mod xnet_messaging_facet; #[allow(clippy::all)] pub mod gateway_messenger_facet; #[allow(clippy::all)] +pub mod subnet_actor_checkpointing_facet; +#[allow(clippy::all)] pub mod subnet_actor_diamond; #[allow(clippy::all)] pub mod subnet_actor_getter_facet; #[allow(clippy::all)] pub mod subnet_actor_manager_facet; #[allow(clippy::all)] +pub mod subnet_actor_pause_facet; +#[allow(clippy::all)] +pub mod subnet_actor_reward_facet; +#[allow(clippy::all)] pub mod subnet_registry_diamond; #[allow(clippy::all)] pub mod register_subnet_facet; @@ -50,11 +56,11 @@ fvm_address_conversion!(gateway_getter_facet); fvm_address_conversion!(bottom_up_router_facet); fvm_address_conversion!(xnet_messaging_facet); fvm_address_conversion!(gateway_messenger_facet); -fvm_address_conversion!(subnet_actor_manager_facet); +fvm_address_conversion!(subnet_actor_checkpointing_facet); +fvm_address_conversion!(subnet_actor_getter_facet); fvm_address_conversion!(lib_gateway); // The list of contracts that need to convert common types between each other -common_type_conversion!(gateway_getter_facet, subnet_actor_manager_facet); common_type_conversion!(subnet_actor_getter_facet, bottom_up_router_facet); common_type_conversion!(subnet_actor_getter_facet, checkpointing_facet); common_type_conversion!(subnet_actor_getter_facet, xnet_messaging_facet); diff --git a/contracts/binding/src/subnet_actor_checkpointing_facet.rs b/contracts/binding/src/subnet_actor_checkpointing_facet.rs new file mode 100644 index 000000000..f257da8a3 --- /dev/null +++ b/contracts/binding/src/subnet_actor_checkpointing_facet.rs @@ -0,0 +1,1385 @@ +pub use subnet_actor_checkpointing_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod subnet_actor_checkpointing_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("submitBottomUpMsgBatch"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "submitBottomUpMsgBatch", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("batch"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Bool, + ], + ), + ), + ), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct BottomUpMsgBatch"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signatories"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signatures"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Bytes, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes[]"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("submitCheckpoint"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("submitCheckpoint"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("checkpoint"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct BottomUpCheckpoint", + ), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signatories"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signatures"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Bytes, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes[]"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("validateActiveQuorumSignatures"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "validateActiveQuorumSignatures", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signatories"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("hash"), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( + 32usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signatures"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Bytes, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes[]"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + }, + ], + ), + ]), + events: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("Paused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Paused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("Unpaused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Unpaused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ]), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressShouldBeValidator"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressShouldBeValidator", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("BatchWithNoMessages"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "BatchWithNoMessages", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("CannotConfirmFutureChanges"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "CannotConfirmFutureChanges", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("EnforcedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("EnforcedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ExpectedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ExpectedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidBatchEpoch"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidBatchEpoch"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidCheckpointEpoch"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCheckpointEpoch", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidSignatureErr"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidSignatureErr", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint8"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("MaxMsgsPerBatchExceeded"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "MaxMsgsPerBatchExceeded", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotValidator"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotValidator"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("PQDoesNotContainAddress"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "PQDoesNotContainAddress", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("PQEmpty"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("PQEmpty"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ReentrancyError"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ReentrancyError"), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static SUBNETACTORCHECKPOINTINGFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + #[rustfmt::skip] + const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa,\x92\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80c&\x81\x196\x14a\0FW\x80c\xB9\xEE+\xB9\x14a\0[W\x80c\xCC-\xC2\xB9\x14a\0nW[`\0\x80\xFD[a\0Ya\0T6`\x04a\x1E\xC8V[a\0\x81V[\0[a\0Ya\0i6`\x04a\x1FdV[a\x02\xB5V[a\0Ya\0|6`\x04a! V[a\x04\xC9V[`\x06T` \x86\x015\x10\x15a\0\xA8W`@Qc \x0CR\xF7`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\tT`\x01`\x01`@\x1B\x03\x16a\0\xC1`@\x87\x01\x87a!\xEAV[\x90P\x11\x15a\0\xE2W`@Qc5\x1Cp\x07`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\tT`\x01`\x01`@\x1B\x03\x16a\0\xFB`@\x87\x01\x87a!\xEAV[\x90P\x14\x15\x80\x15a\x01\x1AWP`\x08Ta\x01\x17\x90` \x87\x015a\"IV[\x15\x15[\x15a\x018W`@Qc \x0CR\xF7`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01E`@\x86\x01\x86a!\xEAV[\x90P`\0\x03a\x01gW`@Qc8\xD20\x7F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x85`@Q` \x01a\x01z\x91\x90a$cV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x91\x82\x01 `\x06T\x90\x92P\x90\x87\x015\x03a\x01\xCFW`\x07T\x81\x03a\x01\xCAW` \x80\x87\x015`\0\x90\x81R`#\x90\x91R`@\x90 a\x01\xC8\x903a\x05_V[P[a\x02\xADV[a\x02\x13\x85\x85\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83` \x02\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x85\x92Pa\0|\x91P\x86\x90P\x87a%\xF0V[`@\x80Q\x80\x82\x01\x82R` \x80\x89\x015\x80\x83R\x91\x81\x01\x84\x90R`\x06\x82\x90U`\x07\x84\x90U`\0\x91\x82R`#\x90R a\x02I\x903a\x05_V[P`\x0ET`@Qc\x0B\xEDv\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x0B\xEDv\x15\x90a\x02z\x90\x89\x90`\x04\x01a$cV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x02\x94W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x02\xA8W=`\0\x80>=`\0\xFD[PPPP[PPPPPPV[a\x02\xBDa\x05}V[`\x0BT`\x05Ta\x02\xCD\x91\x90a&\x13V[\x85` \x015\x14\x15\x80\x15a\x02\xE6WP`\x05T` \x86\x015\x14\x15[\x15a\x03\x04W`@Qc\xFA\xE4\xEA\xDB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x85`@Q` \x01a\x03\x17\x91\x90a&&V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x90\x91\x01 `\x0BT`\x05T\x91\x92Pa\x03A\x91a&\x13V[\x86` \x015\x03a\x04SWa\x03\x8F\x85\x85\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83` \x02\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x85\x92Pa\0|\x91P\x86\x90P\x87a%\xF0V[` \x80\x87\x015`\0\x90\x81R\x90\x81\x90R`@\x90 \x86\x90a\x03\xAE\x82\x82a&\xC4V[PP` \x80\x87\x015`\0\x90\x81R`\"\x90\x91R`@\x90 a\x03\xCE\x903a\x05_V[P` \x86\x015`\x05U`\x0ET`@QcG\xDC\x9BO`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cG\xDC\x9BO\x90a\x04\x07\x90\x89\x90`\x04\x01a&&V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x04!W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x045W=`\0\x80>=`\0\xFD[Pa\x01\xCA\x92Pa\x04N\x91PP`\x80\x88\x01``\x89\x01a'\xFCV[a\x05\xC2V[`\x05T` \x87\x015\x03a\x02\xADW` \x80\x87\x015`\0\x90\x81R\x80\x82R`@\x80\x82 \x90Q\x91\x92a\x04\x81\x92\x01a( V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x80\x82\x03a\x04\xC0W` \x80\x88\x015`\0\x90\x81R`\"\x90\x91R`@\x90 a\x04\xBE\x903a\x05_V[P[PPPPPPPV[`\0a\x04\xD6`\x13\x85a\n\x01V[\x90P`\0a\x04\xE4`\x13a\x0B\x12V[`\x0ET\x90\x91P`\0\x90`d\x90a\x05\x04\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16\x84a&\x94V[a\x05\x0E\x91\x90a(\xBCV[\x90P`\0\x80a\x05 \x88\x86\x85\x8A\x8Aa\x0B}V[\x91P\x91P\x81a\x04\xBEW\x80`\x05\x81\x11\x15a\x05;Wa\x05;a(\xD0V[`@Qc(.\xF1\xC1`\xE0\x1B\x81R`\xFF\x90\x91\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`\0a\x05t\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x0C\xC9V[\x90P[\x92\x91PPV[\x7F\xC4Q\xC9B\x9C'\xDBh\xF2\x86\xAB\x8Ah\xF3\x11\xF1\xDC\xCA\xB7\x03\xBA\x94#\xAE\xD2\x9C\xD3\x97\xAEc\xF8cT`\xFF\x16\x15a\x05\xC0W`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[`\x1C\x80T`\0\x91\x90`\x01`\x01`@\x1B\x03\x90\x81\x16\x90\x84\x16\x10a\x05\xF6W`@Qc\x04\n\xAA\x05`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03`\x01`@\x1B\x90\x91\x04\x81\x16\x90\x84\x16\x10\x15a\x06\x18WPPPV[\x80T`\x01`@\x1B\x90\x04`\x01`\x01`@\x1B\x03\x16\x80[\x84`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11a\t\x91W`\x01`\x01`@\x1B\x03\x81\x16`\0\x90\x81R`\x01\x84\x01` R`@\x81 `\x02\x81\x81\x01T\x82T\x92\x93P`\x01`\x01`\xA0\x1B\x03\x16\x91`\xFF\x16`\x03\x81\x11\x15a\x06\x88Wa\x06\x88a(\xD0V[\x03a\x06\xBDW`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x15\x87\x01` R`@\x90 `\x03\x01a\x06\xB7`\x01\x84\x01\x82a)YV[Pa\t}V[`\x03\x82T`\xFF\x16`\x03\x81\x11\x15a\x06\xD5Wa\x06\xD5a(\xD0V[\x03a\x07\xBFW`\0\x80\x83`\x01\x01\x80Ta\x06\xEC\x90a(\xE6V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x07\x18\x90a(\xE6V[\x80\x15a\x07eW\x80`\x1F\x10a\x07:Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x07eV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x07HW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x80` \x01\x90Q\x81\x01\x90a\x07}\x91\x90a*5V[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x15\x8B\x01` R`@\x90 \x91\x93P\x91P`\x03\x01a\x07\xA9\x83\x82a*\xCAV[Pa\x07\xB8`\x13\x89\x01\x84\x83a\r\x18V[PPa\t}V[`\0\x82`\x01\x01\x80Ta\x07\xD0\x90a(\xE6V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x07\xFC\x90a(\xE6V[\x80\x15a\x08IW\x80`\x1F\x10a\x08\x1EWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x08IV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x08,W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x80` \x01\x90Q\x81\x01\x90a\x08a\x91\x90a+\x81V[\x90P`\x01\x83T`\xFF\x16`\x03\x81\x11\x15a\x08{Wa\x08{a(\xD0V[\x03a\t\x01Wa\x08\x8E`\x13\x88\x01\x83\x83a\rnV[a\x08\x9C`\x1E\x88\x01\x83\x83a\x0EUV[`\x0E\x87\x01T`@QcE\xF5D\x85`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cE\xF5D\x85\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x08\xE4W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x08\xF8W=`\0\x80>=`\0\xFD[PPPPa\t{V[a\t\x0F`\x13\x88\x01\x83\x83a\x0E\xF2V[\x86`\x0E\x01`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16cZb}\xBC\x82`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\taW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\tuW=`\0\x80>=`\0\xFD[PPPPP[P[a\t\x87\x85\x84a\x0FeV[PP`\x01\x01a\x06,V[Pa\t\x9D\x84`\x01a+\x9AV[\x82To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x19\x16`\x01`@\x1B`\x01`\x01`@\x1B\x03\x92\x83\x16\x02\x17\x83U`@Q\x90\x85\x16\x81R\x7F$o\0\xB6\x1C\xE6r$/3\xBBh\nG\x14|\xD5M=\xFD\x04\xDB\xB7iV\xBAB\xF8\x80\x87\xBFc\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPV[\x80Q``\x90`\0\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\n Wa\n a\x1F\xA7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\nIW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x82\x81\x10\x15a\x0B\tWa\nz\x86\x86\x83\x81Q\x81\x10a\nmWa\nma+\xC1V[` \x02` \x01\x01Qa\x0F\xACV[a\n\xC1W\x84\x81\x81Q\x81\x10a\n\x90Wa\n\x90a+\xC1V[` \x02` \x01\x01Q`@Qc;On+`\xE2\x1B\x81R`\x04\x01a\x05V\x91\x90`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[a\n\xE4\x86\x86\x83\x81Q\x81\x10a\n\xD7Wa\n\xD7a+\xC1V[` \x02` \x01\x01Qa\x0F\xBBV[\x82\x82\x81Q\x81\x10a\n\xF6Wa\n\xF6a+\xC1V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\nOV[P\x94\x93PPPPV[`\0\x80a\x0B$\x83`\x03\x01Ta\xFF\xFF\x16\x90V[\x90P`\x01[\x81a\xFF\xFF\x16\x81a\xFF\xFF\x16\x11a\x0BvWa\xFF\xFF\x81\x16`\0\x90\x81R`\x05\x85\x01` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16a\x0Ba\x85\x82a\x0F\xBBV[a\x0Bk\x90\x85a&\x13V[\x93PP`\x01\x01a\x0B)V[PP\x91\x90PV[\x80Q`\0\x90\x81\x90`\x01\x90\x82\x90\x80\x82\x03a\x0B\x9EWPP\x15\x91P`\x02\x90Pa\x0C\xBFV[\x89Q\x81\x14\x15\x80a\x0B\xAFWP\x88Q\x81\x14\x15[\x15a\x0B\xC2WPP\x15\x91P`\x01\x90Pa\x0C\xBFV[`\0[\x81\x81\x10\x15a\x0C\x9EW`\0\x80a\x0B\xF3\x8A\x8A\x85\x81Q\x81\x10a\x0B\xE6Wa\x0B\xE6a+\xC1V[` \x02` \x01\x01Qa\x10\x1EV[P\x90\x92P\x90P`\0\x81`\x03\x81\x11\x15a\x0C\rWa\x0C\ra(\xD0V[\x14a\x0C%W\x85\x15`\x04\x97P\x97PPPPPPPa\x0C\xBFV[\x8C\x83\x81Q\x81\x10a\x0C7Wa\x0C7a+\xC1V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0CjW\x85\x15`\x03\x97P\x97PPPPPPPa\x0C\xBFV[\x8B\x83\x81Q\x81\x10a\x0C|Wa\x0C|a+\xC1V[` \x02` \x01\x01Q\x85a\x0C\x8F\x91\x90a&\x13V[\x94P\x82`\x01\x01\x92PPPa\x0B\xC5V[P\x87\x82\x10a\x0C\xB5W\x82`\0\x94P\x94PPPPa\x0C\xBFV[PP\x15\x91P`\x05\x90P[\x95P\x95\x93PPPPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\r\x10WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x05wV[P`\0a\x05wV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x90 \x80T\x90\x82\x90U\x81\x81\x03a\rEWPPPPV[\x81\x81\x10\x15a\r]Wa\rX\x84\x84\x84a\x10kV[a\rhV[a\rh\x84\x84\x84a\x12\xADV[PPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\r\x97\x90\x83\x90a+\xD7V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x90\x91 \x01T\x90\x91P\x81\x15\x80\x15a\r\xC4WP\x80\x15[\x15a\x0E\tW`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x82 \x82\x81U`\x01\x81\x01\x83\x90U\x90\x81\x01\x82\x90U\x90a\x0E\x02`\x03\x83\x01\x82a\x1E6V[PPa\x0E*V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x90 `\x01\x01\x82\x90U[a\x0E5\x85\x85\x84a\x12\xADV[\x82\x85`\x01\x01`\0\x82\x82Ta\x0EI\x91\x90a+\xD7V[\x90\x91UPPPPPPPV[\x82T`\0\x90a\x0Ed\x90Ca&\x13V[`@\x80Q\x80\x82\x01\x82R\x82\x81R` \x80\x82\x01\x86\x90R`\x01`\x01`\xA0\x1B\x03\x87\x16`\0\x90\x81R`\x01\x89\x01\x90\x91R\x91\x90\x91 \x91\x92P\x90a\x0E\xA0\x90\x82a\x15bV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R` \x81\x01\x85\x90R\x90\x81\x01\x83\x90R\x7F\x08;\x08\x07\x88\xE2\x0B\xD0\x93\x0C+\xCA*\xE4\xFB\xC5\x1AY\xCE\xD0\x8C\x1BY\x92'\x1F\x8C\xB49I\x8Ac\x90``\x01[`@Q\x80\x91\x03\x90\xA1PPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\x0F\x1B\x90\x83\x90a&\x13V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x81 `\x01\x90\x81\x01\x83\x90U\x86\x01\x80T\x92\x93P\x84\x92\x90\x91\x90a\x0FT\x90\x84\x90a&\x13V[\x90\x91UPa\rh\x90P\x84\x84\x83a\x10kV[`\x01`\x01`@\x1B\x03\x81\x16`\0\x90\x81R`\x01\x80\x84\x01` R`@\x82 \x80T`\xFF\x19\x16\x81U\x91\x90a\x0F\x96\x90\x83\x01\x82a\x1E6V[P`\x02\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UPPV[`\0a\x05t`\x03\x84\x01\x83a\x15\xCEV[`\0`\x01\x83T`\xFF\x16`\x02\x81\x11\x15a\x0F\xD5Wa\x0F\xD5a(\xD0V[\x03a\x0F\xFBWP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x02\x83\x01` R`@\x90 Ta\x05wV[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x02\x91\x90\x91\x01` R`@\x90 `\x01\x01T\x90V[`\0\x80`\0\x83Q`A\x03a\x10XW` \x84\x01Q`@\x85\x01Q``\x86\x01Q`\0\x1Aa\x10J\x88\x82\x85\x85a\x15\xF4V[\x95P\x95P\x95PPPPa\x10dV[PP\x81Q`\0\x91P`\x02\x90[\x92P\x92P\x92V[a\x10x`\x03\x84\x01\x83a\x15\xCEV[\x15a\x10\xD3Wa\x10\x8B`\x03\x84\x01\x84\x84a\x16\xC3V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F\x14=\xB2{\xC2\x03fS\xDCo\x96/\xF9\xD0\xB8\x03\x16=J\xF5\x0C%l\xA9\xE6\x92{=m\xCD\x01\x97\x91\x01[`@Q\x80\x91\x03\x90\xA1PPPV[\x82Ta\xFF\xFFa\x01\0\x90\x91\x04\x16`\0a\x10\xF0`\x03\x86\x01Ta\xFF\xFF\x16\x90V[\x90P\x80a\xFF\xFF\x16\x82a\xFF\xFF\x16\x11\x15a\x11OWa\x11\x10`\x03\x86\x01\x86\x86a\x16\xF2V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R` \x81\x01\x85\x90R\x7F.\x808\xF5\x81/v=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x16\xAFWP`\0\x92P`\x01\x91P\x82\x90Pa\x16\xB9V[\x92P`\0\x91P\x81\x90P[\x94P\x94P\x94\x91PPV[`\0a\x16\xCF\x84\x83a\x1AxV[\x90P`\0a\x16\xDD\x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1A\xB8V[PPPPPV[\x82T`\0\x90a\x17\x06\x90a\xFF\xFF\x16`\x01a+\xEAV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x81\x81R`\x01\x87\x01` \x90\x81R`@\x80\x83 \x80Ta\xFF\xFF\x87\x16a\xFF\xFF\x19\x91\x82\x16\x81\x17\x90\x92U\x81\x85R`\x02\x8B\x01\x90\x93R\x90\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90\x94\x17\x90\x93U\x87T\x16\x90\x91\x17\x86U\x90\x91Pa\x17j\x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1BIV[`\0\x80a\x17\x84\x84a\x1B\x8DV[`\x01`\0\x90\x81R`\x02\x85\x01` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x90a\x17\xAB\x85\x83a\x0F\xBBV[\x91\x93P\x90\x91PP[\x92P\x92\x90PV[a\x17\xC3\x82a\x1B\x8DV[\x81Ta\xFF\xFF\x16a\x17\xD5\x83`\x01\x83a\x1B\xB6V[a\x17\xE0`\x01\x82a,\x05V[\x83Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x83Ua\x17\xFB\x83\x82a\x1CkV[`\0a\x18\t\x84\x84`\x01a\x1C\xB0V[\x90Pa\rh\x84\x84`\x01\x84a\x1A\xB8V[`\0a\x18$\x84\x83a\x1AxV[\x84T\x90\x91Pa\xFF\xFF\x16a\x188\x85\x83\x83a\x1B\xB6V[a\x18C`\x01\x82a,\x05V[\x85Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x85Ua\x18^\x85\x82a\x1CkV[\x81a\xFF\xFF\x16\x81a\xFF\xFF\x16\x03a\x18tWPPPPPV[`\0a\x18\x81\x86\x86\x85a\x1C\xB0V[\x90Pa\x18\x8F\x86\x86\x85\x84a\x1C\xE2V[a\x18\x9A\x86\x86\x85a\x1C\xB0V[\x90Pa\x02\xAD\x86\x86\x85\x84a\x1D&V[\x82T`\0\x90a\x18\xBC\x90a\xFF\xFF\x16`\x01a+\xEAV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x81\x81R`\x01\x87\x01` \x90\x81R`@\x80\x83 \x80Ta\xFF\xFF\x87\x16a\xFF\xFF\x19\x91\x82\x16\x81\x17\x90\x92U\x81\x85R`\x02\x8B\x01\x90\x93R\x90\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90\x94\x17\x90\x93U\x87T\x16\x90\x91\x17\x86U\x90\x91Pa\x19 \x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1C\xE2V[`\0a\x19:\x84\x83a\x1AxV[\x90P`\0a\x19 \x84\x84a\x0F\xBBV[`\0a\x19T\x84\x83a\x1AxV[\x90P`\0a\x19b\x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1D&V[`\0a\x19|\x84\x83a\x1AxV[\x84T\x90\x91Pa\xFF\xFF\x16a\x19\x90\x85\x83\x83a\x1B\xB6V[a\x19\x9B`\x01\x82a,\x05V[\x85Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x85Ua\x19\xB6\x85\x82a\x1CkV[\x81a\xFF\xFF\x16\x81a\xFF\xFF\x16\x03a\x19\xCCWPPPPPV[`\0a\x19\xD9\x86\x86\x85a\x1C\xB0V[\x90Pa\x19\xE7\x86\x86\x85\x84a\x1BIV[a\x19\xF2\x86\x86\x85a\x1C\xB0V[\x90Pa\x02\xAD\x86\x86\x85\x84a\x1A\xB8V[a\x1A\t\x82a\x1B\x8DV[\x81Ta\xFF\xFF\x16a\x1A\x1B\x83`\x01\x83a\x1B\xB6V[a\x1A&`\x01\x82a,\x05V[\x83Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x83Ua\x1AA\x83\x82a\x1CkV[`\0a\x1AO\x84\x84`\x01a\x1C\xB0V[\x90Pa\rh\x84\x84`\x01\x84a\x1D&V[`\0a\x1Aj\x84\x83a\x1AxV[\x90P`\0a\x17j\x84\x84a\x0F\xBBV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 Ta\xFF\xFF\x16\x90\x81\x90\x03a\x05wW`@Qc\xF2u^7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1A\xC5\x83`\x02a, V[\x85T\x90\x91P`\0\x90a\xFF\xFF\x16[\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x11a\x04\xC0W\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x10\x15a\x1B\x11Wa\x1B\x07\x87\x87\x85a\x1B\x02\x81`\x01a+\xEAV[a\x1D\xB2V[\x90\x93P\x91Pa\x1B\x1FV[a\x1B\x1C\x87\x87\x85a\x1C\xB0V[\x91P[\x83\x82\x10\x15a\x04\xC0Wa\x1B2\x87\x84\x87a\x1B\xB6V[\x82\x94P\x84`\x02a\x1BB\x91\x90a, V[\x92Pa\x1A\xD2V[`\0\x80[`\x01\x84a\xFF\xFF\x16\x11\x15a\x02\xADWa\x7F\xFF`\x01\x85\x90\x1C\x16\x91Pa\x1Bp\x86\x86\x84a\x1C\xB0V[\x90P\x80\x83\x10\x15a\x02\xADWa\x1B\x85\x86\x83\x86a\x1B\xB6V[\x81\x93Pa\x1BMV[\x80Ta\xFF\xFF\x16`\0\x03a\x1B\xB3W`@Qc@\xD9\xB0\x11`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PV[\x82Ta\xFF\xFF\x90\x81\x16\x90\x83\x16\x11\x15a\x1B\xCFWa\x1B\xCFa,FV[\x82Ta\xFF\xFF\x90\x81\x16\x90\x82\x16\x11\x15a\x1B\xE8Wa\x1B\xE8a,FV[a\xFF\xFF\x91\x82\x16`\0\x81\x81R`\x02\x85\x01` \x81\x81R`@\x80\x84 \x80T\x96\x90\x97\x16\x80\x85R\x81\x85 \x80T`\x01`\x01`\xA0\x1B\x03\x98\x89\x16\x80\x88R`\x01\x90\x9B\x01\x85R\x83\x87 \x80Ta\xFF\xFF\x19\x90\x81\x16\x90\x94\x17\x90U\x90\x97\x16\x80\x86R\x91\x85 \x80T\x90\x91\x16\x86\x17\x90U\x91\x90R\x83T`\x01`\x01`\xA0\x1B\x03\x19\x90\x81\x16\x90\x96\x17\x90\x93UR\x81T\x90\x92\x16\x90\x91\x17\x90UV[a\xFF\xFF\x16`\0\x90\x81R`\x02\x82\x01` \x90\x81R`@\x80\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x90\x91U`\x01`\x01`\xA0\x1B\x03\x16\x83R`\x01\x90\x93\x01\x90R \x80Ta\xFF\xFF\x19\x16\x90UV[a\xFF\xFF\x81\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16a\x1C\xD9\x84\x82a\x0F\xBBV[\x95\x94PPPPPV[`\0\x80[`\x01\x84a\xFF\xFF\x16\x11\x15a\x02\xADWa\x7F\xFF`\x01\x85\x90\x1C\x16\x91Pa\x1D\t\x86\x86\x84a\x1C\xB0V[\x90P\x80\x83\x11\x15a\x02\xADWa\x1D\x1E\x86\x83\x86a\x1B\xB6V[\x81\x93Pa\x1C\xE6V[\x83Tb\x01\xFF\xFE`\x01\x84\x90\x1B\x16\x90`\0\x90a\xFF\xFF\x16[\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x11a\x04\xC0W\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x10\x15a\x1DzWa\x1Dp\x87\x87\x85a\x1Dk\x81`\x01a+\xEAV[a\x1D\xF4V[\x90\x93P\x91Pa\x1D\x88V[a\x1D\x85\x87\x87\x85a\x1C\xB0V[\x91P[\x83\x82\x11\x15a\x04\xC0Wa\x1D\x9B\x87\x84\x87a\x1B\xB6V[\x82\x94P\x84`\x02a\x1D\xAB\x91\x90a, V[\x92Pa\x1D;V[`\0\x80\x80a\x1D\xC1\x87\x87\x87a\x1C\xB0V[\x90P`\0a\x1D\xD0\x88\x88\x87a\x1C\xB0V[\x90P\x81\x81\x10a\x1D\xE4WP\x84\x92P\x90Pa\x1D\xEBV[\x84\x93P\x91PP[\x94P\x94\x92PPPV[`\0\x80\x80a\x1E\x03\x87\x87\x87a\x1C\xB0V[\x90P`\0a\x1E\x12\x88\x88\x87a\x1C\xB0V[\x90P\x81\x81\x11\x15a\x1E(W\x84\x93P\x91Pa\x1D\xEB\x90PV[P\x93\x96\x93\x95P\x92\x93PPPPV[P\x80Ta\x1EB\x90a(\xE6V[`\0\x82U\x80`\x1F\x10a\x1ERWPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x1B\xB3\x91\x90[\x80\x82\x11\x15a\x1E\x80W`\0\x81U`\x01\x01a\x1ElV[P\x90V[`\0\x80\x83`\x1F\x84\x01\x12a\x1E\x96W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xADW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x17\xB3W`\0\x80\xFD[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15a\x1E\xE0W`\0\x80\xFD[\x855`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x1E\xF7W`\0\x80\xFD[\x90\x87\x01\x90``\x82\x8A\x03\x12\x15a\x1F\x0BW`\0\x80\xFD[\x90\x95P` \x87\x015\x90\x80\x82\x11\x15a\x1F!W`\0\x80\xFD[a\x1F-\x89\x83\x8A\x01a\x1E\x84V[\x90\x96P\x94P`@\x88\x015\x91P\x80\x82\x11\x15a\x1FFW`\0\x80\xFD[Pa\x1FS\x88\x82\x89\x01a\x1E\x84V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15a\x1F|W`\0\x80\xFD[\x855`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x1F\x93W`\0\x80\xFD[\x90\x87\x01\x90`\x80\x82\x8A\x03\x12\x15a\x1F\x0BW`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x1F\xE5Wa\x1F\xE5a\x1F\xA7V[`@R\x91\x90PV[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15a \x06Wa \x06a\x1F\xA7V[P`\x05\x1B` \x01\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1B\xB3W`\0\x80\xFD[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15a >Wa >a\x1F\xA7V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0a _a Z\x84a\x1F\xEDV[a\x1F\xBDV[\x83\x81R\x90P` \x80\x82\x01\x90`\x05\x85\x90\x1B\x84\x01\x86\x81\x11\x15a ~W`\0\x80\xFD[\x84[\x81\x81\x10\x15a \xF5W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15a \x9FW`\0\x80\x81\xFD[\x86\x01`\x1F\x81\x01\x89\x13a \xB1W`\0\x80\x81\xFD[\x805a \xBFa Z\x82a %V[\x81\x81R\x8A\x86\x83\x85\x01\x01\x11\x15a \xD4W`\0\x80\x81\xFD[\x81\x86\x84\x01\x87\x83\x017`\0\x91\x81\x01\x86\x01\x91\x90\x91R\x85RP\x92\x82\x01\x92\x82\x01a \x80V[PPPP\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a!\x11W`\0\x80\xFD[a\x05t\x83\x835` \x85\x01a LV[`\0\x80`\0``\x84\x86\x03\x12\x15a!5W`\0\x80\xFD[\x835`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a!LW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a!`W`\0\x80\xFD[\x815` a!pa Z\x83a\x1F\xEDV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x8A\x84\x11\x15a!\x8FW`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a!\xB6W\x855a!\xA7\x81a \x10V[\x82R\x94\x82\x01\x94\x90\x82\x01\x90a!\x94V[\x97PP\x87\x015\x94PP`@\x86\x015\x91P\x80\x82\x11\x15a!\xD3W`\0\x80\xFD[Pa!\xE0\x86\x82\x87\x01a!\0V[\x91PP\x92P\x92P\x92V[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\"\x01W`\0\x80\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15a\"\x1BW`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x17\xB3W`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82a\"XWa\"Xa\"3V[P\x06\x90V[`\0\x825`>\x19\x836\x03\x01\x81\x12a\"sW`\0\x80\xFD[\x90\x91\x01\x92\x91PPV[`\x01`\x01`@\x1B\x03\x81\x16\x81\x14a\x1B\xB3W`\0\x80\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\"\xA8W`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a\"\xC7W`\0\x80\xFD[\x80`\x05\x1B6\x03\x82\x13\x15a\x17\xB3W`\0\x80\xFD[`\0`@\x83\x01\x825a\"\xEA\x81a\"|V[`\x01`\x01`@\x1B\x03\x16\x84R` a#\x03\x84\x82\x01\x85a\"\x91V[`@\x87\x84\x01R\x92\x83\x90R\x91`\0\x90``\x87\x01[\x81\x83\x10\x15a#FW\x845a#)\x81a \x10V[`\x01`\x01`\xA0\x1B\x03\x16\x81R\x93\x83\x01\x93`\x01\x92\x90\x92\x01\x91\x83\x01a#\x16V[\x97\x96PPPPPPPV[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a#hW`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a#\x87W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x17\xB3W`\0\x80\xFD[\x81\x83R\x81\x81` \x85\x017P`\0\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[`\0a#\xCB\x82\x83a\"]V[`@\x84Ra#\xDC`@\x85\x01\x82a\"\xD9V[\x90Pa#\xEB` \x84\x01\x84a\"]V[\x84\x82\x03` \x86\x01R\x805`\xFF\x81\x16\x80\x82\x14a$\x05W`\0\x80\xFD[\x83RPa$\x15` \x82\x01\x82a#QV[\x91P`@` \x84\x01Ra$,`@\x84\x01\x83\x83a#\x96V[\x96\x95PPPPPPV[\x805`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a$NW`\0\x80\xFD[\x91\x90PV[\x805\x80\x15\x15\x81\x14a$NW`\0\x80\xFD[`\0` \x80\x83Ra$t\x84\x85a\"]V[``\x82\x85\x01Ra$\x87`\x80\x85\x01\x82a\"\xD9V[\x90P`@\x82\x86\x015\x81\x86\x01Ra$\x9F\x81\x87\x01\x87a\"\x91V[`\x1F\x19\x87\x85\x03\x81\x01``\x89\x01R\x81\x85R\x85\x85\x01`\x05\x83\x90\x1B\x86\x01\x87\x01\x84`\0[\x85\x81\x10\x15a%\xDFW\x84\x89\x84\x03\x01\x84Ra$\xD8\x82\x88a\"]V[\x805`\xDE\x19\x826\x03\x01\x81\x12a$\xECW`\0\x80\xFD[\x89\x85R\x81\x01a$\xFB\x81\x80a\"]V[`\xE0\x8B\x87\x01Ra%\x0Fa\x01 \x87\x01\x82a#\xBFV[\x90Pa%\x1D\x8D\x83\x01\x83a\"]V[`?\x19\x80\x88\x84\x03\x01``\x89\x01Ra%4\x83\x83a#\xBFV[\x92P\x8C\x84\x015`\x80\x89\x01R``\x84\x015\x91Pa%O\x82a\"|V[`\xA0`\x01`\x01`@\x1B\x03\x83\x16\x81\x8A\x01Ra%k`\x80\x86\x01a$6V[\x92P`\xC0a%\x84\x81\x8B\x01\x85`\x01`\x01`\xE0\x1B\x03\x19\x16\x90RV[a%\x90\x82\x87\x01\x87a#QV[\x94P\x91P\x82\x8A\x86\x03\x01`\xE0\x8B\x01Ra%\xA9\x85\x85\x84a#\x96V[\x94P\x80\x86\x015a\x01\0\x8B\x01RPPPPa%\xC4\x8D\x84\x01a$SV[\x15\x15\x95\x8D\x01\x95\x90\x95RPP\x92\x89\x01\x92\x90\x89\x01\x90`\x01\x01a$\xBFV[P\x90\x9B\x9APPPPPPPPPPPV[`\0a\x05t6\x84\x84a LV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x05wWa\x05wa%\xFDV[` \x81R`\0a&6\x83\x84a\"]V[`\x80` \x84\x01Ra&J`\xA0\x84\x01\x82a\"\xD9V[\x90P` \x84\x015`@\x84\x01R`@\x84\x015``\x84\x01R``\x84\x015a&n\x81a\"|V[`\x01`\x01`@\x1B\x03\x16`\x80\x93\x90\x93\x01\x92\x90\x92RP\x91\x90PV[`\0\x815a\x05w\x81a\"|V[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05wWa\x05wa%\xFDV[[\x81\x81\x10\x15a&\xC0W`\0\x81U`\x01\x01a&\xACV[PPV[\x815`>\x19\x836\x03\x01\x81\x12a&\xD8W`\0\x80\xFD[\x82\x01\x805a&\xE5\x81a\"|V[\x82Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01`\x01`@\x1B\x03\x82\x16\x17\x83UP`\x01\x80\x83\x01` \x80\x84\x015`\x1E\x19\x856\x03\x01\x81\x12a'\x1DW`\0\x80\xFD[\x93\x90\x93\x01\x92\x835`\x01`\x01`@\x1B\x03\x81\x11\x15a'8W`\0\x80\xFD[\x81\x85\x01\x94P\x80`\x05\x1B6\x03\x85\x13\x15a'OW`\0\x80\xFD[`\x01`@\x1B\x81\x11\x15a'cWa'ca\x1F\xA7V[\x82T\x81\x84U\x80\x82\x10\x15a'\x88W\x83`\0R\x82`\0 a'\x86\x82\x82\x01\x84\x83\x01a&\xABV[P[P`\0\x92\x83R\x81\x83 \x92[\x81\x81\x10\x15a'\xB5W\x855a'\xA6\x81a \x10V[\x84\x82\x01U\x94\x82\x01\x94\x84\x01a'\x93V[PP\x85\x015`\x02\x85\x01UPPP`@\x82\x015`\x03\x82\x01Ua&\xC0a'\xDB``\x84\x01a&\x87V[`\x04\x83\x01`\x01`\x01`@\x1B\x03\x82\x16`\x01`\x01`@\x1B\x03\x19\x82T\x16\x17\x81UPPV[`\0` \x82\x84\x03\x12\x15a(\x0EW`\0\x80\xFD[\x815a(\x19\x81a\"|V[\x93\x92PPPV[` \x80\x82R`\x80\x82\x82\x01R\x82T`\x01`\x01`@\x1B\x03\x16`\xA0\x83\x01R`@`\xC0\x83\x01R`\x01\x80\x84\x01\x80T`\xE0\x85\x01\x81\x90R`\0\x91\x82R\x83\x82 \x91\x93\x92\x90\x84\x90a\x01\0\x87\x01\x90[\x80\x83\x10\x15a(\x8BW\x84T`\x01`\x01`\xA0\x1B\x03\x16\x82R\x93\x83\x01\x93\x91\x83\x01\x91\x90\x85\x01\x90a(eV[P`\x02\x88\x01T`@\x88\x01R`\x03\x88\x01T``\x88\x01R`\x04\x88\x01T`\x01`\x01`@\x1B\x03\x16`\x80\x88\x01\x81\x90R\x94Pa#FV[`\0\x82a(\xCBWa(\xCBa\"3V[P\x04\x90V[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x01\x81\x81\x1C\x90\x82\x16\x80a(\xFAW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a)\x1AWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x14TW\x80`\0R` `\0 `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15a)GWP\x80[a\x16\xEB`\x1F\x85\x01`\x05\x1C\x83\x01\x82a&\xABV[\x81\x81\x03a)dWPPV[a)n\x82Ta(\xE6V[`\x01`\x01`@\x1B\x03\x81\x11\x15a)\x85Wa)\x85a\x1F\xA7V[a)\x99\x81a)\x93\x84Ta(\xE6V[\x84a) V[`\0`\x1F\x82\x11`\x01\x81\x14a)\xCDW`\0\x83\x15a)\xB5WP\x84\x82\x01T[`\0\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x84Ua\x16\xEBV[`\0\x85\x81R` \x90 `\x1F\x19\x84\x16\x90`\0\x86\x81R` \x90 \x84[\x83\x81\x10\x15a*\x07W\x82\x86\x01T\x82U`\x01\x95\x86\x01\x95\x90\x91\x01\x90` \x01a)\xE7V[P\x85\x83\x10\x15a*%W\x81\x85\x01T`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\0\x80`@\x83\x85\x03\x12\x15a*HW`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a*^W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a*oW`\0\x80\xFD[\x80Qa*}a Z\x82a %V[\x81\x81R` \x87\x81\x84\x86\x01\x01\x11\x15a*\x93W`\0\x80\xFD[`\0[\x83\x81\x10\x15a*\xB1W\x84\x81\x01\x82\x01Q\x83\x82\x01\x83\x01R\x81\x01a*\x96V[P`\0\x92\x82\x01\x81\x01\x92\x90\x92R\x94\x01Q\x93\x95\x93\x94PPPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a*\xE3Wa*\xE3a\x1F\xA7V[a*\xF1\x81a)\x93\x84Ta(\xE6V[` \x80`\x1F\x83\x11`\x01\x81\x14a+&W`\0\x84\x15a+\x0EWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x02\xADV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a+UW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a+6V[P\x85\x82\x10\x15a*%W\x93\x90\x96\x01Q`\0\x19`\xF8`\x03\x87\x90\x1B\x16\x1C\x19\x16\x90\x92UPP`\x01\x90\x81\x1B\x01\x90UPV[`\0` \x82\x84\x03\x12\x15a+\x93W`\0\x80\xFD[PQ\x91\x90PV[`\x01`\x01`@\x1B\x03\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a+\xBAWa+\xBAa%\xFDV[P\x92\x91PPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x81\x81\x03\x81\x81\x11\x15a\x05wWa\x05wa%\xFDV[a\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a+\xBAWa+\xBAa%\xFDV[a\xFF\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x80\x82\x11\x15a+\xBAWa+\xBAa%\xFDV[a\xFF\xFF\x81\x81\x16\x83\x82\x16\x02\x80\x82\x16\x91\x90\x82\x81\x14a,>Wa,>a%\xFDV[PP\x92\x91PPV[cNH{q`\xE0\x1B`\0R`\x01`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 A3JE\xCE\xC4\xC9I\x07\xA5A\xEF\x9B\xC4CW\xB0r\xAEq\xEF\xDF\x8AOnj\x88\xC8\xF9\xCB\xC0\x8DdsolcC\0\x08\x13\x003"; + /// The bytecode of the contract. + pub static SUBNETACTORCHECKPOINTINGFACET_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80c&\x81\x196\x14a\0FW\x80c\xB9\xEE+\xB9\x14a\0[W\x80c\xCC-\xC2\xB9\x14a\0nW[`\0\x80\xFD[a\0Ya\0T6`\x04a\x1E\xC8V[a\0\x81V[\0[a\0Ya\0i6`\x04a\x1FdV[a\x02\xB5V[a\0Ya\0|6`\x04a! V[a\x04\xC9V[`\x06T` \x86\x015\x10\x15a\0\xA8W`@Qc \x0CR\xF7`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\tT`\x01`\x01`@\x1B\x03\x16a\0\xC1`@\x87\x01\x87a!\xEAV[\x90P\x11\x15a\0\xE2W`@Qc5\x1Cp\x07`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\tT`\x01`\x01`@\x1B\x03\x16a\0\xFB`@\x87\x01\x87a!\xEAV[\x90P\x14\x15\x80\x15a\x01\x1AWP`\x08Ta\x01\x17\x90` \x87\x015a\"IV[\x15\x15[\x15a\x018W`@Qc \x0CR\xF7`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01E`@\x86\x01\x86a!\xEAV[\x90P`\0\x03a\x01gW`@Qc8\xD20\x7F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x85`@Q` \x01a\x01z\x91\x90a$cV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x91\x82\x01 `\x06T\x90\x92P\x90\x87\x015\x03a\x01\xCFW`\x07T\x81\x03a\x01\xCAW` \x80\x87\x015`\0\x90\x81R`#\x90\x91R`@\x90 a\x01\xC8\x903a\x05_V[P[a\x02\xADV[a\x02\x13\x85\x85\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83` \x02\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x85\x92Pa\0|\x91P\x86\x90P\x87a%\xF0V[`@\x80Q\x80\x82\x01\x82R` \x80\x89\x015\x80\x83R\x91\x81\x01\x84\x90R`\x06\x82\x90U`\x07\x84\x90U`\0\x91\x82R`#\x90R a\x02I\x903a\x05_V[P`\x0ET`@Qc\x0B\xEDv\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x0B\xEDv\x15\x90a\x02z\x90\x89\x90`\x04\x01a$cV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x02\x94W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x02\xA8W=`\0\x80>=`\0\xFD[PPPP[PPPPPPV[a\x02\xBDa\x05}V[`\x0BT`\x05Ta\x02\xCD\x91\x90a&\x13V[\x85` \x015\x14\x15\x80\x15a\x02\xE6WP`\x05T` \x86\x015\x14\x15[\x15a\x03\x04W`@Qc\xFA\xE4\xEA\xDB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x85`@Q` \x01a\x03\x17\x91\x90a&&V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x90\x91\x01 `\x0BT`\x05T\x91\x92Pa\x03A\x91a&\x13V[\x86` \x015\x03a\x04SWa\x03\x8F\x85\x85\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83` \x02\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x85\x92Pa\0|\x91P\x86\x90P\x87a%\xF0V[` \x80\x87\x015`\0\x90\x81R\x90\x81\x90R`@\x90 \x86\x90a\x03\xAE\x82\x82a&\xC4V[PP` \x80\x87\x015`\0\x90\x81R`\"\x90\x91R`@\x90 a\x03\xCE\x903a\x05_V[P` \x86\x015`\x05U`\x0ET`@QcG\xDC\x9BO`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cG\xDC\x9BO\x90a\x04\x07\x90\x89\x90`\x04\x01a&&V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x04!W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x045W=`\0\x80>=`\0\xFD[Pa\x01\xCA\x92Pa\x04N\x91PP`\x80\x88\x01``\x89\x01a'\xFCV[a\x05\xC2V[`\x05T` \x87\x015\x03a\x02\xADW` \x80\x87\x015`\0\x90\x81R\x80\x82R`@\x80\x82 \x90Q\x91\x92a\x04\x81\x92\x01a( V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x80\x82\x03a\x04\xC0W` \x80\x88\x015`\0\x90\x81R`\"\x90\x91R`@\x90 a\x04\xBE\x903a\x05_V[P[PPPPPPPV[`\0a\x04\xD6`\x13\x85a\n\x01V[\x90P`\0a\x04\xE4`\x13a\x0B\x12V[`\x0ET\x90\x91P`\0\x90`d\x90a\x05\x04\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16\x84a&\x94V[a\x05\x0E\x91\x90a(\xBCV[\x90P`\0\x80a\x05 \x88\x86\x85\x8A\x8Aa\x0B}V[\x91P\x91P\x81a\x04\xBEW\x80`\x05\x81\x11\x15a\x05;Wa\x05;a(\xD0V[`@Qc(.\xF1\xC1`\xE0\x1B\x81R`\xFF\x90\x91\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[`\0a\x05t\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x0C\xC9V[\x90P[\x92\x91PPV[\x7F\xC4Q\xC9B\x9C'\xDBh\xF2\x86\xAB\x8Ah\xF3\x11\xF1\xDC\xCA\xB7\x03\xBA\x94#\xAE\xD2\x9C\xD3\x97\xAEc\xF8cT`\xFF\x16\x15a\x05\xC0W`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[`\x1C\x80T`\0\x91\x90`\x01`\x01`@\x1B\x03\x90\x81\x16\x90\x84\x16\x10a\x05\xF6W`@Qc\x04\n\xAA\x05`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03`\x01`@\x1B\x90\x91\x04\x81\x16\x90\x84\x16\x10\x15a\x06\x18WPPPV[\x80T`\x01`@\x1B\x90\x04`\x01`\x01`@\x1B\x03\x16\x80[\x84`\x01`\x01`@\x1B\x03\x16\x81`\x01`\x01`@\x1B\x03\x16\x11a\t\x91W`\x01`\x01`@\x1B\x03\x81\x16`\0\x90\x81R`\x01\x84\x01` R`@\x81 `\x02\x81\x81\x01T\x82T\x92\x93P`\x01`\x01`\xA0\x1B\x03\x16\x91`\xFF\x16`\x03\x81\x11\x15a\x06\x88Wa\x06\x88a(\xD0V[\x03a\x06\xBDW`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x15\x87\x01` R`@\x90 `\x03\x01a\x06\xB7`\x01\x84\x01\x82a)YV[Pa\t}V[`\x03\x82T`\xFF\x16`\x03\x81\x11\x15a\x06\xD5Wa\x06\xD5a(\xD0V[\x03a\x07\xBFW`\0\x80\x83`\x01\x01\x80Ta\x06\xEC\x90a(\xE6V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x07\x18\x90a(\xE6V[\x80\x15a\x07eW\x80`\x1F\x10a\x07:Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x07eV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x07HW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x80` \x01\x90Q\x81\x01\x90a\x07}\x91\x90a*5V[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x15\x8B\x01` R`@\x90 \x91\x93P\x91P`\x03\x01a\x07\xA9\x83\x82a*\xCAV[Pa\x07\xB8`\x13\x89\x01\x84\x83a\r\x18V[PPa\t}V[`\0\x82`\x01\x01\x80Ta\x07\xD0\x90a(\xE6V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x07\xFC\x90a(\xE6V[\x80\x15a\x08IW\x80`\x1F\x10a\x08\x1EWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x08IV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x08,W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x80` \x01\x90Q\x81\x01\x90a\x08a\x91\x90a+\x81V[\x90P`\x01\x83T`\xFF\x16`\x03\x81\x11\x15a\x08{Wa\x08{a(\xD0V[\x03a\t\x01Wa\x08\x8E`\x13\x88\x01\x83\x83a\rnV[a\x08\x9C`\x1E\x88\x01\x83\x83a\x0EUV[`\x0E\x87\x01T`@QcE\xF5D\x85`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cE\xF5D\x85\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x08\xE4W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x08\xF8W=`\0\x80>=`\0\xFD[PPPPa\t{V[a\t\x0F`\x13\x88\x01\x83\x83a\x0E\xF2V[\x86`\x0E\x01`\0\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16cZb}\xBC\x82`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\taW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\tuW=`\0\x80>=`\0\xFD[PPPPP[P[a\t\x87\x85\x84a\x0FeV[PP`\x01\x01a\x06,V[Pa\t\x9D\x84`\x01a+\x9AV[\x82To\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\0\0\0\0\0\0\x19\x16`\x01`@\x1B`\x01`\x01`@\x1B\x03\x92\x83\x16\x02\x17\x83U`@Q\x90\x85\x16\x81R\x7F$o\0\xB6\x1C\xE6r$/3\xBBh\nG\x14|\xD5M=\xFD\x04\xDB\xB7iV\xBAB\xF8\x80\x87\xBFc\x90` \x01`@Q\x80\x91\x03\x90\xA1PPPPV[\x80Q``\x90`\0\x81`\x01`\x01`@\x1B\x03\x81\x11\x15a\n Wa\n a\x1F\xA7V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\nIW\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x82\x81\x10\x15a\x0B\tWa\nz\x86\x86\x83\x81Q\x81\x10a\nmWa\nma+\xC1V[` \x02` \x01\x01Qa\x0F\xACV[a\n\xC1W\x84\x81\x81Q\x81\x10a\n\x90Wa\n\x90a+\xC1V[` \x02` \x01\x01Q`@Qc;On+`\xE2\x1B\x81R`\x04\x01a\x05V\x91\x90`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[a\n\xE4\x86\x86\x83\x81Q\x81\x10a\n\xD7Wa\n\xD7a+\xC1V[` \x02` \x01\x01Qa\x0F\xBBV[\x82\x82\x81Q\x81\x10a\n\xF6Wa\n\xF6a+\xC1V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\nOV[P\x94\x93PPPPV[`\0\x80a\x0B$\x83`\x03\x01Ta\xFF\xFF\x16\x90V[\x90P`\x01[\x81a\xFF\xFF\x16\x81a\xFF\xFF\x16\x11a\x0BvWa\xFF\xFF\x81\x16`\0\x90\x81R`\x05\x85\x01` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16a\x0Ba\x85\x82a\x0F\xBBV[a\x0Bk\x90\x85a&\x13V[\x93PP`\x01\x01a\x0B)V[PP\x91\x90PV[\x80Q`\0\x90\x81\x90`\x01\x90\x82\x90\x80\x82\x03a\x0B\x9EWPP\x15\x91P`\x02\x90Pa\x0C\xBFV[\x89Q\x81\x14\x15\x80a\x0B\xAFWP\x88Q\x81\x14\x15[\x15a\x0B\xC2WPP\x15\x91P`\x01\x90Pa\x0C\xBFV[`\0[\x81\x81\x10\x15a\x0C\x9EW`\0\x80a\x0B\xF3\x8A\x8A\x85\x81Q\x81\x10a\x0B\xE6Wa\x0B\xE6a+\xC1V[` \x02` \x01\x01Qa\x10\x1EV[P\x90\x92P\x90P`\0\x81`\x03\x81\x11\x15a\x0C\rWa\x0C\ra(\xD0V[\x14a\x0C%W\x85\x15`\x04\x97P\x97PPPPPPPa\x0C\xBFV[\x8C\x83\x81Q\x81\x10a\x0C7Wa\x0C7a+\xC1V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0CjW\x85\x15`\x03\x97P\x97PPPPPPPa\x0C\xBFV[\x8B\x83\x81Q\x81\x10a\x0C|Wa\x0C|a+\xC1V[` \x02` \x01\x01Q\x85a\x0C\x8F\x91\x90a&\x13V[\x94P\x82`\x01\x01\x92PPPa\x0B\xC5V[P\x87\x82\x10a\x0C\xB5W\x82`\0\x94P\x94PPPPa\x0C\xBFV[PP\x15\x91P`\x05\x90P[\x95P\x95\x93PPPPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\r\x10WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x05wV[P`\0a\x05wV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x90 \x80T\x90\x82\x90U\x81\x81\x03a\rEWPPPPV[\x81\x81\x10\x15a\r]Wa\rX\x84\x84\x84a\x10kV[a\rhV[a\rh\x84\x84\x84a\x12\xADV[PPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\r\x97\x90\x83\x90a+\xD7V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x90\x91 \x01T\x90\x91P\x81\x15\x80\x15a\r\xC4WP\x80\x15[\x15a\x0E\tW`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x82 \x82\x81U`\x01\x81\x01\x83\x90U\x90\x81\x01\x82\x90U\x90a\x0E\x02`\x03\x83\x01\x82a\x1E6V[PPa\x0E*V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x90 `\x01\x01\x82\x90U[a\x0E5\x85\x85\x84a\x12\xADV[\x82\x85`\x01\x01`\0\x82\x82Ta\x0EI\x91\x90a+\xD7V[\x90\x91UPPPPPPPV[\x82T`\0\x90a\x0Ed\x90Ca&\x13V[`@\x80Q\x80\x82\x01\x82R\x82\x81R` \x80\x82\x01\x86\x90R`\x01`\x01`\xA0\x1B\x03\x87\x16`\0\x90\x81R`\x01\x89\x01\x90\x91R\x91\x90\x91 \x91\x92P\x90a\x0E\xA0\x90\x82a\x15bV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R` \x81\x01\x85\x90R\x90\x81\x01\x83\x90R\x7F\x08;\x08\x07\x88\xE2\x0B\xD0\x93\x0C+\xCA*\xE4\xFB\xC5\x1AY\xCE\xD0\x8C\x1BY\x92'\x1F\x8C\xB49I\x8Ac\x90``\x01[`@Q\x80\x91\x03\x90\xA1PPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\x0F\x1B\x90\x83\x90a&\x13V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x81 `\x01\x90\x81\x01\x83\x90U\x86\x01\x80T\x92\x93P\x84\x92\x90\x91\x90a\x0FT\x90\x84\x90a&\x13V[\x90\x91UPa\rh\x90P\x84\x84\x83a\x10kV[`\x01`\x01`@\x1B\x03\x81\x16`\0\x90\x81R`\x01\x80\x84\x01` R`@\x82 \x80T`\xFF\x19\x16\x81U\x91\x90a\x0F\x96\x90\x83\x01\x82a\x1E6V[P`\x02\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UPPV[`\0a\x05t`\x03\x84\x01\x83a\x15\xCEV[`\0`\x01\x83T`\xFF\x16`\x02\x81\x11\x15a\x0F\xD5Wa\x0F\xD5a(\xD0V[\x03a\x0F\xFBWP`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x02\x83\x01` R`@\x90 Ta\x05wV[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x02\x91\x90\x91\x01` R`@\x90 `\x01\x01T\x90V[`\0\x80`\0\x83Q`A\x03a\x10XW` \x84\x01Q`@\x85\x01Q``\x86\x01Q`\0\x1Aa\x10J\x88\x82\x85\x85a\x15\xF4V[\x95P\x95P\x95PPPPa\x10dV[PP\x81Q`\0\x91P`\x02\x90[\x92P\x92P\x92V[a\x10x`\x03\x84\x01\x83a\x15\xCEV[\x15a\x10\xD3Wa\x10\x8B`\x03\x84\x01\x84\x84a\x16\xC3V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F\x14=\xB2{\xC2\x03fS\xDCo\x96/\xF9\xD0\xB8\x03\x16=J\xF5\x0C%l\xA9\xE6\x92{=m\xCD\x01\x97\x91\x01[`@Q\x80\x91\x03\x90\xA1PPPV[\x82Ta\xFF\xFFa\x01\0\x90\x91\x04\x16`\0a\x10\xF0`\x03\x86\x01Ta\xFF\xFF\x16\x90V[\x90P\x80a\xFF\xFF\x16\x82a\xFF\xFF\x16\x11\x15a\x11OWa\x11\x10`\x03\x86\x01\x86\x86a\x16\xF2V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x86\x16\x81R` \x81\x01\x85\x90R\x7F.\x808\xF5\x81/v=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x16\xAFWP`\0\x92P`\x01\x91P\x82\x90Pa\x16\xB9V[\x92P`\0\x91P\x81\x90P[\x94P\x94P\x94\x91PPV[`\0a\x16\xCF\x84\x83a\x1AxV[\x90P`\0a\x16\xDD\x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1A\xB8V[PPPPPV[\x82T`\0\x90a\x17\x06\x90a\xFF\xFF\x16`\x01a+\xEAV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x81\x81R`\x01\x87\x01` \x90\x81R`@\x80\x83 \x80Ta\xFF\xFF\x87\x16a\xFF\xFF\x19\x91\x82\x16\x81\x17\x90\x92U\x81\x85R`\x02\x8B\x01\x90\x93R\x90\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90\x94\x17\x90\x93U\x87T\x16\x90\x91\x17\x86U\x90\x91Pa\x17j\x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1BIV[`\0\x80a\x17\x84\x84a\x1B\x8DV[`\x01`\0\x90\x81R`\x02\x85\x01` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x90a\x17\xAB\x85\x83a\x0F\xBBV[\x91\x93P\x90\x91PP[\x92P\x92\x90PV[a\x17\xC3\x82a\x1B\x8DV[\x81Ta\xFF\xFF\x16a\x17\xD5\x83`\x01\x83a\x1B\xB6V[a\x17\xE0`\x01\x82a,\x05V[\x83Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x83Ua\x17\xFB\x83\x82a\x1CkV[`\0a\x18\t\x84\x84`\x01a\x1C\xB0V[\x90Pa\rh\x84\x84`\x01\x84a\x1A\xB8V[`\0a\x18$\x84\x83a\x1AxV[\x84T\x90\x91Pa\xFF\xFF\x16a\x188\x85\x83\x83a\x1B\xB6V[a\x18C`\x01\x82a,\x05V[\x85Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x85Ua\x18^\x85\x82a\x1CkV[\x81a\xFF\xFF\x16\x81a\xFF\xFF\x16\x03a\x18tWPPPPPV[`\0a\x18\x81\x86\x86\x85a\x1C\xB0V[\x90Pa\x18\x8F\x86\x86\x85\x84a\x1C\xE2V[a\x18\x9A\x86\x86\x85a\x1C\xB0V[\x90Pa\x02\xAD\x86\x86\x85\x84a\x1D&V[\x82T`\0\x90a\x18\xBC\x90a\xFF\xFF\x16`\x01a+\xEAV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x81\x81R`\x01\x87\x01` \x90\x81R`@\x80\x83 \x80Ta\xFF\xFF\x87\x16a\xFF\xFF\x19\x91\x82\x16\x81\x17\x90\x92U\x81\x85R`\x02\x8B\x01\x90\x93R\x90\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90\x94\x17\x90\x93U\x87T\x16\x90\x91\x17\x86U\x90\x91Pa\x19 \x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1C\xE2V[`\0a\x19:\x84\x83a\x1AxV[\x90P`\0a\x19 \x84\x84a\x0F\xBBV[`\0a\x19T\x84\x83a\x1AxV[\x90P`\0a\x19b\x84\x84a\x0F\xBBV[\x90Pa\x16\xEB\x85\x85\x84\x84a\x1D&V[`\0a\x19|\x84\x83a\x1AxV[\x84T\x90\x91Pa\xFF\xFF\x16a\x19\x90\x85\x83\x83a\x1B\xB6V[a\x19\x9B`\x01\x82a,\x05V[\x85Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x85Ua\x19\xB6\x85\x82a\x1CkV[\x81a\xFF\xFF\x16\x81a\xFF\xFF\x16\x03a\x19\xCCWPPPPPV[`\0a\x19\xD9\x86\x86\x85a\x1C\xB0V[\x90Pa\x19\xE7\x86\x86\x85\x84a\x1BIV[a\x19\xF2\x86\x86\x85a\x1C\xB0V[\x90Pa\x02\xAD\x86\x86\x85\x84a\x1A\xB8V[a\x1A\t\x82a\x1B\x8DV[\x81Ta\xFF\xFF\x16a\x1A\x1B\x83`\x01\x83a\x1B\xB6V[a\x1A&`\x01\x82a,\x05V[\x83Ta\xFF\xFF\x19\x16a\xFF\xFF\x91\x90\x91\x16\x17\x83Ua\x1AA\x83\x82a\x1CkV[`\0a\x1AO\x84\x84`\x01a\x1C\xB0V[\x90Pa\rh\x84\x84`\x01\x84a\x1D&V[`\0a\x1Aj\x84\x83a\x1AxV[\x90P`\0a\x17j\x84\x84a\x0F\xBBV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 Ta\xFF\xFF\x16\x90\x81\x90\x03a\x05wW`@Qc\xF2u^7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1A\xC5\x83`\x02a, V[\x85T\x90\x91P`\0\x90a\xFF\xFF\x16[\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x11a\x04\xC0W\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x10\x15a\x1B\x11Wa\x1B\x07\x87\x87\x85a\x1B\x02\x81`\x01a+\xEAV[a\x1D\xB2V[\x90\x93P\x91Pa\x1B\x1FV[a\x1B\x1C\x87\x87\x85a\x1C\xB0V[\x91P[\x83\x82\x10\x15a\x04\xC0Wa\x1B2\x87\x84\x87a\x1B\xB6V[\x82\x94P\x84`\x02a\x1BB\x91\x90a, V[\x92Pa\x1A\xD2V[`\0\x80[`\x01\x84a\xFF\xFF\x16\x11\x15a\x02\xADWa\x7F\xFF`\x01\x85\x90\x1C\x16\x91Pa\x1Bp\x86\x86\x84a\x1C\xB0V[\x90P\x80\x83\x10\x15a\x02\xADWa\x1B\x85\x86\x83\x86a\x1B\xB6V[\x81\x93Pa\x1BMV[\x80Ta\xFF\xFF\x16`\0\x03a\x1B\xB3W`@Qc@\xD9\xB0\x11`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PV[\x82Ta\xFF\xFF\x90\x81\x16\x90\x83\x16\x11\x15a\x1B\xCFWa\x1B\xCFa,FV[\x82Ta\xFF\xFF\x90\x81\x16\x90\x82\x16\x11\x15a\x1B\xE8Wa\x1B\xE8a,FV[a\xFF\xFF\x91\x82\x16`\0\x81\x81R`\x02\x85\x01` \x81\x81R`@\x80\x84 \x80T\x96\x90\x97\x16\x80\x85R\x81\x85 \x80T`\x01`\x01`\xA0\x1B\x03\x98\x89\x16\x80\x88R`\x01\x90\x9B\x01\x85R\x83\x87 \x80Ta\xFF\xFF\x19\x90\x81\x16\x90\x94\x17\x90U\x90\x97\x16\x80\x86R\x91\x85 \x80T\x90\x91\x16\x86\x17\x90U\x91\x90R\x83T`\x01`\x01`\xA0\x1B\x03\x19\x90\x81\x16\x90\x96\x17\x90\x93UR\x81T\x90\x92\x16\x90\x91\x17\x90UV[a\xFF\xFF\x16`\0\x90\x81R`\x02\x82\x01` \x90\x81R`@\x80\x83 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x90\x91U`\x01`\x01`\xA0\x1B\x03\x16\x83R`\x01\x90\x93\x01\x90R \x80Ta\xFF\xFF\x19\x16\x90UV[a\xFF\xFF\x81\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16a\x1C\xD9\x84\x82a\x0F\xBBV[\x95\x94PPPPPV[`\0\x80[`\x01\x84a\xFF\xFF\x16\x11\x15a\x02\xADWa\x7F\xFF`\x01\x85\x90\x1C\x16\x91Pa\x1D\t\x86\x86\x84a\x1C\xB0V[\x90P\x80\x83\x11\x15a\x02\xADWa\x1D\x1E\x86\x83\x86a\x1B\xB6V[\x81\x93Pa\x1C\xE6V[\x83Tb\x01\xFF\xFE`\x01\x84\x90\x1B\x16\x90`\0\x90a\xFF\xFF\x16[\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x11a\x04\xC0W\x80a\xFF\xFF\x16\x83a\xFF\xFF\x16\x10\x15a\x1DzWa\x1Dp\x87\x87\x85a\x1Dk\x81`\x01a+\xEAV[a\x1D\xF4V[\x90\x93P\x91Pa\x1D\x88V[a\x1D\x85\x87\x87\x85a\x1C\xB0V[\x91P[\x83\x82\x11\x15a\x04\xC0Wa\x1D\x9B\x87\x84\x87a\x1B\xB6V[\x82\x94P\x84`\x02a\x1D\xAB\x91\x90a, V[\x92Pa\x1D;V[`\0\x80\x80a\x1D\xC1\x87\x87\x87a\x1C\xB0V[\x90P`\0a\x1D\xD0\x88\x88\x87a\x1C\xB0V[\x90P\x81\x81\x10a\x1D\xE4WP\x84\x92P\x90Pa\x1D\xEBV[\x84\x93P\x91PP[\x94P\x94\x92PPPV[`\0\x80\x80a\x1E\x03\x87\x87\x87a\x1C\xB0V[\x90P`\0a\x1E\x12\x88\x88\x87a\x1C\xB0V[\x90P\x81\x81\x11\x15a\x1E(W\x84\x93P\x91Pa\x1D\xEB\x90PV[P\x93\x96\x93\x95P\x92\x93PPPPV[P\x80Ta\x1EB\x90a(\xE6V[`\0\x82U\x80`\x1F\x10a\x1ERWPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x1B\xB3\x91\x90[\x80\x82\x11\x15a\x1E\x80W`\0\x81U`\x01\x01a\x1ElV[P\x90V[`\0\x80\x83`\x1F\x84\x01\x12a\x1E\x96W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xADW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x17\xB3W`\0\x80\xFD[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15a\x1E\xE0W`\0\x80\xFD[\x855`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x1E\xF7W`\0\x80\xFD[\x90\x87\x01\x90``\x82\x8A\x03\x12\x15a\x1F\x0BW`\0\x80\xFD[\x90\x95P` \x87\x015\x90\x80\x82\x11\x15a\x1F!W`\0\x80\xFD[a\x1F-\x89\x83\x8A\x01a\x1E\x84V[\x90\x96P\x94P`@\x88\x015\x91P\x80\x82\x11\x15a\x1FFW`\0\x80\xFD[Pa\x1FS\x88\x82\x89\x01a\x1E\x84V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0\x80`\0\x80`\0``\x86\x88\x03\x12\x15a\x1F|W`\0\x80\xFD[\x855`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x1F\x93W`\0\x80\xFD[\x90\x87\x01\x90`\x80\x82\x8A\x03\x12\x15a\x1F\x0BW`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x1F\xE5Wa\x1F\xE5a\x1F\xA7V[`@R\x91\x90PV[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15a \x06Wa \x06a\x1F\xA7V[P`\x05\x1B` \x01\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1B\xB3W`\0\x80\xFD[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15a >Wa >a\x1F\xA7V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0a _a Z\x84a\x1F\xEDV[a\x1F\xBDV[\x83\x81R\x90P` \x80\x82\x01\x90`\x05\x85\x90\x1B\x84\x01\x86\x81\x11\x15a ~W`\0\x80\xFD[\x84[\x81\x81\x10\x15a \xF5W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15a \x9FW`\0\x80\x81\xFD[\x86\x01`\x1F\x81\x01\x89\x13a \xB1W`\0\x80\x81\xFD[\x805a \xBFa Z\x82a %V[\x81\x81R\x8A\x86\x83\x85\x01\x01\x11\x15a \xD4W`\0\x80\x81\xFD[\x81\x86\x84\x01\x87\x83\x017`\0\x91\x81\x01\x86\x01\x91\x90\x91R\x85RP\x92\x82\x01\x92\x82\x01a \x80V[PPPP\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a!\x11W`\0\x80\xFD[a\x05t\x83\x835` \x85\x01a LV[`\0\x80`\0``\x84\x86\x03\x12\x15a!5W`\0\x80\xFD[\x835`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a!LW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a!`W`\0\x80\xFD[\x815` a!pa Z\x83a\x1F\xEDV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x8A\x84\x11\x15a!\x8FW`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a!\xB6W\x855a!\xA7\x81a \x10V[\x82R\x94\x82\x01\x94\x90\x82\x01\x90a!\x94V[\x97PP\x87\x015\x94PP`@\x86\x015\x91P\x80\x82\x11\x15a!\xD3W`\0\x80\xFD[Pa!\xE0\x86\x82\x87\x01a!\0V[\x91PP\x92P\x92P\x92V[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\"\x01W`\0\x80\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15a\"\x1BW`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15a\x17\xB3W`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82a\"XWa\"Xa\"3V[P\x06\x90V[`\0\x825`>\x19\x836\x03\x01\x81\x12a\"sW`\0\x80\xFD[\x90\x91\x01\x92\x91PPV[`\x01`\x01`@\x1B\x03\x81\x16\x81\x14a\x1B\xB3W`\0\x80\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\"\xA8W`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a\"\xC7W`\0\x80\xFD[\x80`\x05\x1B6\x03\x82\x13\x15a\x17\xB3W`\0\x80\xFD[`\0`@\x83\x01\x825a\"\xEA\x81a\"|V[`\x01`\x01`@\x1B\x03\x16\x84R` a#\x03\x84\x82\x01\x85a\"\x91V[`@\x87\x84\x01R\x92\x83\x90R\x91`\0\x90``\x87\x01[\x81\x83\x10\x15a#FW\x845a#)\x81a \x10V[`\x01`\x01`\xA0\x1B\x03\x16\x81R\x93\x83\x01\x93`\x01\x92\x90\x92\x01\x91\x83\x01a#\x16V[\x97\x96PPPPPPPV[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a#hW`\0\x80\xFD[\x83\x01` \x81\x01\x92P5\x90P`\x01`\x01`@\x1B\x03\x81\x11\x15a#\x87W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x17\xB3W`\0\x80\xFD[\x81\x83R\x81\x81` \x85\x017P`\0\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[`\0a#\xCB\x82\x83a\"]V[`@\x84Ra#\xDC`@\x85\x01\x82a\"\xD9V[\x90Pa#\xEB` \x84\x01\x84a\"]V[\x84\x82\x03` \x86\x01R\x805`\xFF\x81\x16\x80\x82\x14a$\x05W`\0\x80\xFD[\x83RPa$\x15` \x82\x01\x82a#QV[\x91P`@` \x84\x01Ra$,`@\x84\x01\x83\x83a#\x96V[\x96\x95PPPPPPV[\x805`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a$NW`\0\x80\xFD[\x91\x90PV[\x805\x80\x15\x15\x81\x14a$NW`\0\x80\xFD[`\0` \x80\x83Ra$t\x84\x85a\"]V[``\x82\x85\x01Ra$\x87`\x80\x85\x01\x82a\"\xD9V[\x90P`@\x82\x86\x015\x81\x86\x01Ra$\x9F\x81\x87\x01\x87a\"\x91V[`\x1F\x19\x87\x85\x03\x81\x01``\x89\x01R\x81\x85R\x85\x85\x01`\x05\x83\x90\x1B\x86\x01\x87\x01\x84`\0[\x85\x81\x10\x15a%\xDFW\x84\x89\x84\x03\x01\x84Ra$\xD8\x82\x88a\"]V[\x805`\xDE\x19\x826\x03\x01\x81\x12a$\xECW`\0\x80\xFD[\x89\x85R\x81\x01a$\xFB\x81\x80a\"]V[`\xE0\x8B\x87\x01Ra%\x0Fa\x01 \x87\x01\x82a#\xBFV[\x90Pa%\x1D\x8D\x83\x01\x83a\"]V[`?\x19\x80\x88\x84\x03\x01``\x89\x01Ra%4\x83\x83a#\xBFV[\x92P\x8C\x84\x015`\x80\x89\x01R``\x84\x015\x91Pa%O\x82a\"|V[`\xA0`\x01`\x01`@\x1B\x03\x83\x16\x81\x8A\x01Ra%k`\x80\x86\x01a$6V[\x92P`\xC0a%\x84\x81\x8B\x01\x85`\x01`\x01`\xE0\x1B\x03\x19\x16\x90RV[a%\x90\x82\x87\x01\x87a#QV[\x94P\x91P\x82\x8A\x86\x03\x01`\xE0\x8B\x01Ra%\xA9\x85\x85\x84a#\x96V[\x94P\x80\x86\x015a\x01\0\x8B\x01RPPPPa%\xC4\x8D\x84\x01a$SV[\x15\x15\x95\x8D\x01\x95\x90\x95RPP\x92\x89\x01\x92\x90\x89\x01\x90`\x01\x01a$\xBFV[P\x90\x9B\x9APPPPPPPPPPPV[`\0a\x05t6\x84\x84a LV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x05wWa\x05wa%\xFDV[` \x81R`\0a&6\x83\x84a\"]V[`\x80` \x84\x01Ra&J`\xA0\x84\x01\x82a\"\xD9V[\x90P` \x84\x015`@\x84\x01R`@\x84\x015``\x84\x01R``\x84\x015a&n\x81a\"|V[`\x01`\x01`@\x1B\x03\x16`\x80\x93\x90\x93\x01\x92\x90\x92RP\x91\x90PV[`\0\x815a\x05w\x81a\"|V[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05wWa\x05wa%\xFDV[[\x81\x81\x10\x15a&\xC0W`\0\x81U`\x01\x01a&\xACV[PPV[\x815`>\x19\x836\x03\x01\x81\x12a&\xD8W`\0\x80\xFD[\x82\x01\x805a&\xE5\x81a\"|V[\x82Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01`\x01`@\x1B\x03\x82\x16\x17\x83UP`\x01\x80\x83\x01` \x80\x84\x015`\x1E\x19\x856\x03\x01\x81\x12a'\x1DW`\0\x80\xFD[\x93\x90\x93\x01\x92\x835`\x01`\x01`@\x1B\x03\x81\x11\x15a'8W`\0\x80\xFD[\x81\x85\x01\x94P\x80`\x05\x1B6\x03\x85\x13\x15a'OW`\0\x80\xFD[`\x01`@\x1B\x81\x11\x15a'cWa'ca\x1F\xA7V[\x82T\x81\x84U\x80\x82\x10\x15a'\x88W\x83`\0R\x82`\0 a'\x86\x82\x82\x01\x84\x83\x01a&\xABV[P[P`\0\x92\x83R\x81\x83 \x92[\x81\x81\x10\x15a'\xB5W\x855a'\xA6\x81a \x10V[\x84\x82\x01U\x94\x82\x01\x94\x84\x01a'\x93V[PP\x85\x015`\x02\x85\x01UPPP`@\x82\x015`\x03\x82\x01Ua&\xC0a'\xDB``\x84\x01a&\x87V[`\x04\x83\x01`\x01`\x01`@\x1B\x03\x82\x16`\x01`\x01`@\x1B\x03\x19\x82T\x16\x17\x81UPPV[`\0` \x82\x84\x03\x12\x15a(\x0EW`\0\x80\xFD[\x815a(\x19\x81a\"|V[\x93\x92PPPV[` \x80\x82R`\x80\x82\x82\x01R\x82T`\x01`\x01`@\x1B\x03\x16`\xA0\x83\x01R`@`\xC0\x83\x01R`\x01\x80\x84\x01\x80T`\xE0\x85\x01\x81\x90R`\0\x91\x82R\x83\x82 \x91\x93\x92\x90\x84\x90a\x01\0\x87\x01\x90[\x80\x83\x10\x15a(\x8BW\x84T`\x01`\x01`\xA0\x1B\x03\x16\x82R\x93\x83\x01\x93\x91\x83\x01\x91\x90\x85\x01\x90a(eV[P`\x02\x88\x01T`@\x88\x01R`\x03\x88\x01T``\x88\x01R`\x04\x88\x01T`\x01`\x01`@\x1B\x03\x16`\x80\x88\x01\x81\x90R\x94Pa#FV[`\0\x82a(\xCBWa(\xCBa\"3V[P\x04\x90V[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x01\x81\x81\x1C\x90\x82\x16\x80a(\xFAW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a)\x1AWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x14TW\x80`\0R` `\0 `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15a)GWP\x80[a\x16\xEB`\x1F\x85\x01`\x05\x1C\x83\x01\x82a&\xABV[\x81\x81\x03a)dWPPV[a)n\x82Ta(\xE6V[`\x01`\x01`@\x1B\x03\x81\x11\x15a)\x85Wa)\x85a\x1F\xA7V[a)\x99\x81a)\x93\x84Ta(\xE6V[\x84a) V[`\0`\x1F\x82\x11`\x01\x81\x14a)\xCDW`\0\x83\x15a)\xB5WP\x84\x82\x01T[`\0\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x84Ua\x16\xEBV[`\0\x85\x81R` \x90 `\x1F\x19\x84\x16\x90`\0\x86\x81R` \x90 \x84[\x83\x81\x10\x15a*\x07W\x82\x86\x01T\x82U`\x01\x95\x86\x01\x95\x90\x91\x01\x90` \x01a)\xE7V[P\x85\x83\x10\x15a*%W\x81\x85\x01T`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\0\x80`@\x83\x85\x03\x12\x15a*HW`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a*^W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a*oW`\0\x80\xFD[\x80Qa*}a Z\x82a %V[\x81\x81R` \x87\x81\x84\x86\x01\x01\x11\x15a*\x93W`\0\x80\xFD[`\0[\x83\x81\x10\x15a*\xB1W\x84\x81\x01\x82\x01Q\x83\x82\x01\x83\x01R\x81\x01a*\x96V[P`\0\x92\x82\x01\x81\x01\x92\x90\x92R\x94\x01Q\x93\x95\x93\x94PPPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a*\xE3Wa*\xE3a\x1F\xA7V[a*\xF1\x81a)\x93\x84Ta(\xE6V[` \x80`\x1F\x83\x11`\x01\x81\x14a+&W`\0\x84\x15a+\x0EWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x02\xADV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a+UW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a+6V[P\x85\x82\x10\x15a*%W\x93\x90\x96\x01Q`\0\x19`\xF8`\x03\x87\x90\x1B\x16\x1C\x19\x16\x90\x92UPP`\x01\x90\x81\x1B\x01\x90UPV[`\0` \x82\x84\x03\x12\x15a+\x93W`\0\x80\xFD[PQ\x91\x90PV[`\x01`\x01`@\x1B\x03\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a+\xBAWa+\xBAa%\xFDV[P\x92\x91PPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x81\x81\x03\x81\x81\x11\x15a\x05wWa\x05wa%\xFDV[a\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a+\xBAWa+\xBAa%\xFDV[a\xFF\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x80\x82\x11\x15a+\xBAWa+\xBAa%\xFDV[a\xFF\xFF\x81\x81\x16\x83\x82\x16\x02\x80\x82\x16\x91\x90\x82\x81\x14a,>Wa,>a%\xFDV[PP\x92\x91PPV[cNH{q`\xE0\x1B`\0R`\x01`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 A3JE\xCE\xC4\xC9I\x07\xA5A\xEF\x9B\xC4CW\xB0r\xAEq\xEF\xDF\x8AOnj\x88\xC8\xF9\xCB\xC0\x8DdsolcC\0\x08\x13\x003"; + /// The deployed bytecode of the contract. + pub static SUBNETACTORCHECKPOINTINGFACET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SubnetActorCheckpointingFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for SubnetActorCheckpointingFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SubnetActorCheckpointingFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SubnetActorCheckpointingFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SubnetActorCheckpointingFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(SubnetActorCheckpointingFacet)) + .field(&self.address()) + .finish() + } + } + impl SubnetActorCheckpointingFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SUBNETACTORCHECKPOINTINGFACET_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SUBNETACTORCHECKPOINTINGFACET_ABI.clone(), + SUBNETACTORCHECKPOINTINGFACET_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `submitBottomUpMsgBatch` (0x26811936) function + pub fn submit_bottom_up_msg_batch( + &self, + batch: BottomUpMsgBatch, + signatories: ::std::vec::Vec<::ethers::core::types::Address>, + signatures: ::std::vec::Vec<::ethers::core::types::Bytes>, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([38, 129, 25, 54], (batch, signatories, signatures)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `submitCheckpoint` (0xb9ee2bb9) function + pub fn submit_checkpoint( + &self, + checkpoint: BottomUpCheckpoint, + signatories: ::std::vec::Vec<::ethers::core::types::Address>, + signatures: ::std::vec::Vec<::ethers::core::types::Bytes>, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([185, 238, 43, 185], (checkpoint, signatories, signatures)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `validateActiveQuorumSignatures` (0xcc2dc2b9) function + pub fn validate_active_quorum_signatures( + &self, + signatories: ::std::vec::Vec<::ethers::core::types::Address>, + hash: [u8; 32], + signatures: ::std::vec::Vec<::ethers::core::types::Bytes>, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([204, 45, 194, 185], (signatories, hash, signatures)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Paused` event + pub fn paused_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PausedFilter> { + self.0.event() + } + ///Gets the contract's `Unpaused` event + pub fn unpaused_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UnpausedFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + SubnetActorCheckpointingFacetEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for SubnetActorCheckpointingFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressShouldBeValidator` with signature `AddressShouldBeValidator()` and selector `0x2a55ca53` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "AddressShouldBeValidator", abi = "AddressShouldBeValidator()")] + pub struct AddressShouldBeValidator; + ///Custom Error type `BatchWithNoMessages` with signature `BatchWithNoMessages()` and selector `0x38d2307f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "BatchWithNoMessages", abi = "BatchWithNoMessages()")] + pub struct BatchWithNoMessages; + ///Custom Error type `CannotConfirmFutureChanges` with signature `CannotConfirmFutureChanges()` and selector `0x0815540a` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "CannotConfirmFutureChanges", + abi = "CannotConfirmFutureChanges()" + )] + pub struct CannotConfirmFutureChanges; + ///Custom Error type `EnforcedPause` with signature `EnforcedPause()` and selector `0xd93c0665` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EnforcedPause", abi = "EnforcedPause()")] + pub struct EnforcedPause; + ///Custom Error type `ExpectedPause` with signature `ExpectedPause()` and selector `0x8dfc202b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ExpectedPause", abi = "ExpectedPause()")] + pub struct ExpectedPause; + ///Custom Error type `InvalidBatchEpoch` with signature `InvalidBatchEpoch()` and selector `0x80314bdc` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBatchEpoch", abi = "InvalidBatchEpoch()")] + pub struct InvalidBatchEpoch; + ///Custom Error type `InvalidCheckpointEpoch` with signature `InvalidCheckpointEpoch()` and selector `0xfae4eadb` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCheckpointEpoch", abi = "InvalidCheckpointEpoch()")] + pub struct InvalidCheckpointEpoch; + ///Custom Error type `InvalidSignatureErr` with signature `InvalidSignatureErr(uint8)` and selector `0x282ef1c1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSignatureErr", abi = "InvalidSignatureErr(uint8)")] + pub struct InvalidSignatureErr(pub u8); + ///Custom Error type `MaxMsgsPerBatchExceeded` with signature `MaxMsgsPerBatchExceeded()` and selector `0x351c7007` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "MaxMsgsPerBatchExceeded", abi = "MaxMsgsPerBatchExceeded()")] + pub struct MaxMsgsPerBatchExceeded; + ///Custom Error type `NotValidator` with signature `NotValidator(address)` and selector `0xed3db8ac` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotValidator", abi = "NotValidator(address)")] + pub struct NotValidator(pub ::ethers::core::types::Address); + ///Custom Error type `PQDoesNotContainAddress` with signature `PQDoesNotContainAddress()` and selector `0xf2755e37` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PQDoesNotContainAddress", abi = "PQDoesNotContainAddress()")] + pub struct PQDoesNotContainAddress; + ///Custom Error type `PQEmpty` with signature `PQEmpty()` and selector `0x40d9b011` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PQEmpty", abi = "PQEmpty()")] + pub struct PQEmpty; + ///Custom Error type `ReentrancyError` with signature `ReentrancyError()` and selector `0x29f745a7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ReentrancyError", abi = "ReentrancyError()")] + pub struct ReentrancyError; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorCheckpointingFacetErrors { + AddressShouldBeValidator(AddressShouldBeValidator), + BatchWithNoMessages(BatchWithNoMessages), + CannotConfirmFutureChanges(CannotConfirmFutureChanges), + EnforcedPause(EnforcedPause), + ExpectedPause(ExpectedPause), + InvalidBatchEpoch(InvalidBatchEpoch), + InvalidCheckpointEpoch(InvalidCheckpointEpoch), + InvalidSignatureErr(InvalidSignatureErr), + MaxMsgsPerBatchExceeded(MaxMsgsPerBatchExceeded), + NotValidator(NotValidator), + PQDoesNotContainAddress(PQDoesNotContainAddress), + PQEmpty(PQEmpty), + ReentrancyError(ReentrancyError), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorCheckpointingFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressShouldBeValidator(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::BatchWithNoMessages(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CannotConfirmFutureChanges(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::EnforcedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ExpectedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidBatchEpoch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCheckpointEpoch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidSignatureErr(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::MaxMsgsPerBatchExceeded(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotValidator(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PQDoesNotContainAddress(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PQEmpty(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ReentrancyError(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorCheckpointingFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressShouldBeValidator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::BatchWithNoMessages(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CannotConfirmFutureChanges(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EnforcedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExpectedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBatchEpoch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidCheckpointEpoch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSignatureErr(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::MaxMsgsPerBatchExceeded(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotValidator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PQDoesNotContainAddress(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PQEmpty(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ReentrancyError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for SubnetActorCheckpointingFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for SubnetActorCheckpointingFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressShouldBeValidator(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::BatchWithNoMessages(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CannotConfirmFutureChanges(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::EnforcedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::ExpectedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBatchEpoch(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidCheckpointEpoch(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidSignatureErr(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::MaxMsgsPerBatchExceeded(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotValidator(element) => ::core::fmt::Display::fmt(element, f), + Self::PQDoesNotContainAddress(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PQEmpty(element) => ::core::fmt::Display::fmt(element, f), + Self::ReentrancyError(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> + for SubnetActorCheckpointingFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: AddressShouldBeValidator) -> Self { + Self::AddressShouldBeValidator(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: BatchWithNoMessages) -> Self { + Self::BatchWithNoMessages(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: CannotConfirmFutureChanges) -> Self { + Self::CannotConfirmFutureChanges(value) + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetErrors { + fn from(value: EnforcedPause) -> Self { + Self::EnforcedPause(value) + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetErrors { + fn from(value: ExpectedPause) -> Self { + Self::ExpectedPause(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: InvalidBatchEpoch) -> Self { + Self::InvalidBatchEpoch(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: InvalidCheckpointEpoch) -> Self { + Self::InvalidCheckpointEpoch(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: InvalidSignatureErr) -> Self { + Self::InvalidSignatureErr(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: MaxMsgsPerBatchExceeded) -> Self { + Self::MaxMsgsPerBatchExceeded(value) + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetErrors { + fn from(value: NotValidator) -> Self { + Self::NotValidator(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetErrors { + fn from(value: PQDoesNotContainAddress) -> Self { + Self::PQDoesNotContainAddress(value) + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetErrors { + fn from(value: PQEmpty) -> Self { + Self::PQEmpty(value) + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetErrors { + fn from(value: ReentrancyError) -> Self { + Self::ReentrancyError(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Paused", abi = "Paused(address)")] + pub struct PausedFilter { + pub account: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Unpaused", abi = "Unpaused(address)")] + pub struct UnpausedFilter { + pub account: ::ethers::core::types::Address, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorCheckpointingFacetEvents { + PausedFilter(PausedFilter), + UnpausedFilter(UnpausedFilter), + } + impl ::ethers::contract::EthLogDecode for SubnetActorCheckpointingFacetEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = PausedFilter::decode_log(log) { + return Ok(SubnetActorCheckpointingFacetEvents::PausedFilter(decoded)); + } + if let Ok(decoded) = UnpausedFilter::decode_log(log) { + return Ok(SubnetActorCheckpointingFacetEvents::UnpausedFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for SubnetActorCheckpointingFacetEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::PausedFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UnpausedFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetEvents { + fn from(value: PausedFilter) -> Self { + Self::PausedFilter(value) + } + } + impl ::core::convert::From for SubnetActorCheckpointingFacetEvents { + fn from(value: UnpausedFilter) -> Self { + Self::UnpausedFilter(value) + } + } + ///Container type for all input parameters for the `submitBottomUpMsgBatch` function with signature `submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])` and selector `0x26811936` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "submitBottomUpMsgBatch", + abi = "submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])" + )] + pub struct SubmitBottomUpMsgBatchCall { + pub batch: BottomUpMsgBatch, + pub signatories: ::std::vec::Vec<::ethers::core::types::Address>, + pub signatures: ::std::vec::Vec<::ethers::core::types::Bytes>, + } + ///Container type for all input parameters for the `submitCheckpoint` function with signature `submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])` and selector `0xb9ee2bb9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "submitCheckpoint", + abi = "submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])" + )] + pub struct SubmitCheckpointCall { + pub checkpoint: BottomUpCheckpoint, + pub signatories: ::std::vec::Vec<::ethers::core::types::Address>, + pub signatures: ::std::vec::Vec<::ethers::core::types::Bytes>, + } + ///Container type for all input parameters for the `validateActiveQuorumSignatures` function with signature `validateActiveQuorumSignatures(address[],bytes32,bytes[])` and selector `0xcc2dc2b9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "validateActiveQuorumSignatures", + abi = "validateActiveQuorumSignatures(address[],bytes32,bytes[])" + )] + pub struct ValidateActiveQuorumSignaturesCall { + pub signatories: ::std::vec::Vec<::ethers::core::types::Address>, + pub hash: [u8; 32], + pub signatures: ::std::vec::Vec<::ethers::core::types::Bytes>, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorCheckpointingFacetCalls { + SubmitBottomUpMsgBatch(SubmitBottomUpMsgBatchCall), + SubmitCheckpoint(SubmitCheckpointCall), + ValidateActiveQuorumSignatures(ValidateActiveQuorumSignaturesCall), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorCheckpointingFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SubmitBottomUpMsgBatch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SubmitCheckpoint(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ValidateActiveQuorumSignatures(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorCheckpointingFacetCalls { + fn encode(self) -> Vec { + match self { + Self::SubmitBottomUpMsgBatch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SubmitCheckpoint(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ValidateActiveQuorumSignatures(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for SubnetActorCheckpointingFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::SubmitBottomUpMsgBatch(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SubmitCheckpoint(element) => ::core::fmt::Display::fmt(element, f), + Self::ValidateActiveQuorumSignatures(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetCalls { + fn from(value: SubmitBottomUpMsgBatchCall) -> Self { + Self::SubmitBottomUpMsgBatch(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetCalls { + fn from(value: SubmitCheckpointCall) -> Self { + Self::SubmitCheckpoint(value) + } + } + impl ::core::convert::From + for SubnetActorCheckpointingFacetCalls { + fn from(value: ValidateActiveQuorumSignaturesCall) -> Self { + Self::ValidateActiveQuorumSignatures(value) + } + } + ///`BottomUpCheckpoint((uint64,address[]),uint256,bytes32,uint64)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BottomUpCheckpoint { + pub subnet_id: SubnetID, + pub block_height: ::ethers::core::types::U256, + pub block_hash: [u8; 32], + pub next_configuration_number: u64, + } + ///`BottomUpMsgBatch((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BottomUpMsgBatch { + pub subnet_id: SubnetID, + pub block_height: ::ethers::core::types::U256, + pub msgs: ::std::vec::Vec, + } + ///`CrossMsg((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CrossMsg { + pub message: StorableMsg, + pub wrapped: bool, + } + ///`FvmAddress(uint8,bytes)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct FvmAddress { + pub addr_type: u8, + pub payload: ::ethers::core::types::Bytes, + } + ///`Ipcaddress((uint64,address[]),(uint8,bytes))` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct Ipcaddress { + pub subnet_id: SubnetID, + pub raw_address: FvmAddress, + } + ///`StorableMsg(((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct StorableMsg { + pub from: Ipcaddress, + pub to: Ipcaddress, + pub value: ::ethers::core::types::U256, + pub nonce: u64, + pub method: [u8; 4], + pub params: ::ethers::core::types::Bytes, + pub fee: ::ethers::core::types::U256, + } + ///`SubnetID(uint64,address[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SubnetID { + pub root: u64, + pub route: ::std::vec::Vec<::ethers::core::types::Address>, + } +} diff --git a/contracts/binding/src/subnet_actor_manager_facet.rs b/contracts/binding/src/subnet_actor_manager_facet.rs new file mode 100644 index 000000000..d645f455d --- /dev/null +++ b/contracts/binding/src/subnet_actor_manager_facet.rs @@ -0,0 +1,1984 @@ +pub use subnet_actor_manager_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod subnet_actor_manager_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("addBootstrapNode"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("addBootstrapNode"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("netAddress"), + kind: ::ethers::core::abi::ethabi::ParamType::String, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("string"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("join"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("join"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("publicKey"), + kind: ::ethers::core::abi::ethabi::ParamType::Bytes, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("kill"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("kill"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("leave"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("leave"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("preFund"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("preFund"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("preRelease"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("preRelease"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("amount"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("setFederatedPower"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("setFederatedPower"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("validators"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("publicKeys"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Bytes, + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("powers"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256[]"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("stake"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("stake"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("unstake"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("unstake"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("amount"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ]), + events: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("Paused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Paused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("Unpaused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Unpaused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ]), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressInsufficientBalance"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressInsufficientBalance", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("AddressShouldBeValidator"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressShouldBeValidator", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("CannotReleaseZero"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("CannotReleaseZero"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("CollateralIsZero"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("CollateralIsZero"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("DuplicatedGenesisValidator"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "DuplicatedGenesisValidator", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("EmptyAddress"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("EmptyAddress"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("EnforcedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("EnforcedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ExpectedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ExpectedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidFederationPayload"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidFederationPayload", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidPublicKeyLength"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidPublicKeyLength", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("MethodNotAllowed"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("MethodNotAllowed"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("reason"), + kind: ::ethers::core::abi::ethabi::ParamType::String, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("string"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotAllValidatorsHaveLeft"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotAllValidatorsHaveLeft", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotEnoughBalance"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotEnoughBalance"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotEnoughCollateral"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotEnoughCollateral", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotEnoughFunds"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotEnoughFunds"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotEnoughGenesisValidators"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotEnoughGenesisValidators", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotOwner"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotOwner"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotOwnerOfPublicKey"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotOwnerOfPublicKey", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotValidator"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotValidator"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("PQDoesNotContainAddress"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "PQDoesNotContainAddress", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("PQEmpty"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("PQEmpty"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ReentrancyError"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ReentrancyError"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("SubnetAlreadyBootstrapped"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "SubnetAlreadyBootstrapped", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("SubnetAlreadyKilled"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "SubnetAlreadyKilled", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("WithdrawExceedingCollateral"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "WithdrawExceedingCollateral", + ), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static SUBNETACTORMANAGERFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + #[rustfmt::skip] + const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa1\xBC\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0\x86W`\x005`\xE0\x1C\x80cA\xC0\xE1\xB5\x11a\0YW\x80cA\xC0\xE1\xB5\x14a\0\xDDW\x80cap\xB1b\x14a\0\xF2W\x80cfx<\x9B\x14a\x01\x05W\x80c\xD6m\x9E\x19\x14a\x01%W\x80c\xDA]\t\xEE\x14a\x01:W`\0\x80\xFD[\x80c\x0B\x7F\xBE`\x14a\0\x8BW\x80c\x10\xFDBa\x14a\0\x95W\x80c.\x17\xDEx\x14a\0\xB5W\x80c:Kf\xF1\x14a\0\xD5W[`\0\x80\xFD[a\0\x93a\x01ZV[\0[4\x80\x15a\0\xA1W`\0\x80\xFD[Pa\0\x93a\0\xB06`\x04a(\x97V[a\x02=V[4\x80\x15a\0\xC1W`\0\x80\xFD[Pa\0\x93a\0\xD06`\x04a)GV[a\x02\xBFV[a\0\x93a\x03sV[4\x80\x15a\0\xE9W`\0\x80\xFD[Pa\0\x93a\x04\x19V[a\0\x93a\x01\x006`\x04a)`V[a\x04\xBCV[4\x80\x15a\x01\x11W`\0\x80\xFD[Pa\0\x93a\x01 6`\x04a)GV[a\x065V[4\x80\x15a\x011W`\0\x80\xFD[Pa\0\x93a\x07fV[4\x80\x15a\x01FW`\0\x80\xFD[Pa\0\x93a\x01U6`\x04a*\x15V[a\x08\xAEV[4`\0\x03a\x01{W`@Qc\x106\xB5\xAD`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x01\xA4W`@Qc\x1B9\xF2\xF3`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x03` R`@\x81 T\x90\x03a\x01\xFDW`\x04\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90U[3`\0\x90\x81R`\x03` R`@\x81 \x80T4\x92\x90a\x02\x1C\x90\x84\x90a*\xC4V[\x90\x91UPP`\x02\x80T4\x91\x90`\0\x90a\x026\x90\x84\x90a*\xC4V[\x90\x91UPPV[a\x02Ea\t?V[a\x02P`\x133a\t\x82V[a\x02tW`@Qc;On+`\xE2\x1B\x81R3`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[\x80Q`\0\x03a\x02\x96W`@Qcq85o`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`$` R`@\x90 a\x02\xAF\x82\x82a+WV[Pa\x02\xBB`%3a\t\x9AV[PPV[a\x02\xC7a\t?V[a\x02\xCFa\t\xAFV[a\x02\xD7a\t\xD9V[\x80`\0\x03a\x02\xF8W`@Qc\xC7\x9C\xAD{`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x15` R`@\x81 `\x02\x01T\x90\x81\x90\x03a\x03.W`@Qc;On+`\xE2\x1B\x81R3`\x04\x82\x01R`$\x01a\x02kV[\x81\x81\x11a\x03MW`@Qb\xD1\x1D\xF3`\xE6\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16a\x03fWa\x02\xBB3\x83a\n.V[a\x02\xBB3\x83a\nbV[PV[a\x03{a\t?V[a\x03\x83a\t\xAFV[a\x03\x8Ba\t\xD9V[4`\0\x03a\x03\xACW`@QcZx\xC5\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x03\xB53a\n~V[a\x03\xECW`@Q\x80``\x01`@R\x80`.\x81R` \x01a1\x14`.\x919`@Qc\x01U8\xB1`\xE0\x1B\x81R`\x04\x01a\x02k\x91\x90a,\\V[`\x12Ta\x01\0\x90\x04`\xFF\x16a\x04\x0FWa\x04\x0534a\n\xA1V[a\x04\ra\x0CxV[V[a\x04\r34a\rzV[a\x04!a\t\xAFV[a\x04)a\r\x96V[a\xFF\xFF\x16\x15a\x04KW`@Qckb%Q`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12\x80Tb\xFF\0\0\x19\x16b\x01\0\0\x17\x90U`\x0ET`@\x80QcA\xC0\xE1\xB5`\xE0\x1B\x81R\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91cA\xC0\xE1\xB5\x91`\x04\x80\x82\x01\x92`\0\x92\x90\x91\x90\x82\x90\x03\x01\x81\x83\x87\x80;\x15\x80\x15a\x04\xA2W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x04\xB6W=`\0\x80>=`\0\xFD[PPPPV[\x7Fi\x1B\xB0?\xFC\x16\xC5o\xC9k\x82\xFD\x16\xCD\x1B7\x15\xF0\xBC<\xDCd\x07\0_I\xBBb\x05\x86\0\x95\x80T`\0\x19\x01a\x05\0W`@Qc)\xF7E\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81Ua\x05\x0Ca\t?V[a\x05\x14a\t\xAFV[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x05,Wa\x05,a\t\xD9V[4`\0\x03a\x05MW`@QcZx\xC5\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05V3a\n~V[\x15a\x05\x8EW`@Q\x80``\x01`@R\x80`2\x81R` \x01a0\xC2`2\x919`@Qc\x01U8\xB1`\xE0\x1B\x81R`\x04\x01a\x02k\x91\x90a,\\V[`A\x82\x14a\x05\xAFW`@Qc\x18\xDC\xA5\xE9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x05\xBB\x84\x84a\r\xB8V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\x05\xE6W`@QcK\xE9%\x1D`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16a\x06\x17Wa\x06\x003\x85\x85a\r\xF8V[a\x06\n34a\n\xA1V[a\x06\x12a\x0CxV[a\x06,V[a\x06\"3\x85\x85a\x0E\x07V[a\x06,34a\rzV[P`\0\x90UPPV[\x7Fi\x1B\xB0?\xFC\x16\xC5o\xC9k\x82\xFD\x16\xCD\x1B7\x15\xF0\xBC<\xDCd\x07\0_I\xBBb\x05\x86\0\x95\x80T`\0\x19\x01a\x06yW`@Qc)\xF7E\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81U`\0\x82\x90\x03a\x06\x9FW`@Qc\x106\xB5\xAD`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x06\xC8W`@Qc\x1B9\xF2\xF3`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x03` R`@\x90 T\x82\x11\x15a\x06\xF8W`@QcV\x9DE\xCF`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x03` R`@\x81 \x80T\x84\x92\x90a\x07\x17\x90\x84\x90a,oV[\x90\x91UPP`\x02\x80T\x83\x91\x90`\0\x90a\x071\x90\x84\x90a,oV[\x90\x91UPP3`\0\x90\x81R`\x03` R`@\x81 T\x90\x03a\x07UWa\x07U3a\x0E\x16V[a\x07_3\x83a\x0F\x1CV[`\0\x90UPV[\x7Fi\x1B\xB0?\xFC\x16\xC5o\xC9k\x82\xFD\x16\xCD\x1B7\x15\xF0\xBC<\xDCd\x07\0_I\xBBb\x05\x86\0\x95\x80T`\0\x19\x01a\x07\xAAW`@Qc)\xF7E\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81Ua\x07\xB6a\t?V[a\x07\xBEa\t\xAFV[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x07\xD6Wa\x07\xD6a\t\xD9V[3`\0\x90\x81R`\x15` R`@\x81 `\x02\x01T\x90\x81\x90\x03a\x08\x0CW`@Qc;On+`\xE2\x1B\x81R3`\x04\x82\x01R`$\x01a\x02kV[a\x08\x17`%3a\x0F\xB3V[P3`\0\x90\x81R`$` R`@\x81 a\x080\x91a(3V[`\x12Ta\x01\0\x90\x04`\xFF\x16a\x08\x9CW3`\0\x90\x81R`\x03` R`@\x90 T\x80\x15a\x08\x8BW3`\0\x90\x81R`\x03` R`\x02\x80T\x83\x92\x90a\x08r\x90\x84\x90a,oV[\x90\x91UPa\x08\x81\x90P3a\x0E\x16V[a\x08\x8B3\x82a\x0F\x1CV[a\x08\x953\x83a\n.V[PPa\x08\xA8V[a\x08\xA63\x82a\nbV[P[`\0\x90UV[a\x08\xB6a\t\xAFV[a\x08\xBEa\x0F\xC8V[a\x08\xC6a\x10\x15V[\x84\x81\x14a\x08\xE6W`@Qc~e\x93Y`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84\x83\x14a\t\x06W`@Qc~e\x93Y`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\t)Wa\t$\x86\x86\x86\x86\x86\x86a\x10\x1EV[a\t7V[a\t7\x86\x86\x86\x86\x86\x86a\x111V[PPPPPPV[\x7F\xC4Q\xC9B\x9C'\xDBh\xF2\x86\xAB\x8Ah\xF3\x11\xF1\xDC\xCA\xB7\x03\xBA\x94#\xAE\xD2\x9C\xD3\x97\xAEc\xF8cT`\xFF\x16\x15a\x04\rW`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t\x91`\x03\x84\x01\x83a\x14\xAAV[\x90P[\x92\x91PPV[`\0a\t\x91\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x14\xD0V[`\x12Tb\x01\0\0\x90\x04`\xFF\x16\x15a\x04\rW`@Qc$\x8C\x8E\xFB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80[`\x13\x82\x01T`\xFF\x16`\x02\x81\x11\x15a\t\xF6Wa\t\xF6a,\x82V[\x14a\x03pW`@Q\x80`\x80\x01`@R\x80`E\x81R` \x01a1B`E\x919`@Qc\x01U8\xB1`\xE0\x1B\x81R`\x04\x01a\x02k\x91\x90a,\\V[`\0a\n<`\x13\x84\x84a\x15\x1FV[a\nJ`\x13\x82\x01\x84\x84a\x15\x8FV[a\n]`\x01`\x01`\xA0\x1B\x03\x84\x16\x83a\x0F\x1CV[PPPV[`\0a\np`\x1C\x84\x84a\x16vV[a\n]`\x13\x82\x01\x84\x84a\x15\x1FV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x15` R`@\x81 `\x02\x01T\x15\x15a\t\x94V[`\0a\n\xAF`\x13\x84\x84a\x16\xE0V[a\n\xBD`\x13\x82\x01\x84\x84a\x17\x16V[`\x12\x81\x01Ta\x01\0\x90\x04`\xFF\x16a\n]W`\x01\x81\x01T`\0\x90\x81[\x81\x81\x10\x15a\x0B2W\x85`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01\x01\x82\x81T\x81\x10a\n\xFFWa\n\xFFa,\x98V[`\0\x91\x82R` \x90\x91 `\x01`\x03\x90\x92\x02\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x0B*W`\x01\x92Pa\x0B2V[`\x01\x01a\n\xD8V[P\x81a\x0CqW`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x81\x81R`\x15\x85\x01` \x81\x81R`@\x80\x84 `\x01\x81\x01T\x82Q``\x81\x01\x84R\x81\x81R\x80\x85\x01\x88\x90R\x96\x86R\x93\x90\x92R`\x03\x90\x91\x01\x80T\x92\x94\x92\x91\x83\x01\x91a\x0B\x89\x90a*\xD7V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0B\xB5\x90a*\xD7V[\x80\x15a\x0C\x02W\x80`\x1F\x10a\x0B\xD7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0C\x02V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0B\xE5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x90\x92RPP`\x01\x86\x81\x01\x80T\x80\x83\x01\x82U`\0\x91\x82R` \x91\x82\x90 \x84Q`\x03\x90\x92\x02\x01\x90\x81U\x90\x83\x01Q\x91\x81\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U`@\x82\x01Q\x91\x92P\x82\x91`\x02\x82\x01\x90a\x0Ck\x90\x82a+WV[PPPPP[PPPPPV[`\0\x80a\x0C\x83a\x17\x89V[\x90P\x81`\n\x01T\x81\x10a\x02\xBBW`\x0C\x82\x01T`\x01`\x01`@\x1B\x03\x16a\x0C\xA6a\x17\x96V[a\xFF\xFF\x16\x10a\x02\xBBW`\x12\x82\x01\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U`@Q\x7FI\x14\xD8\x80c'Z%\xA1;-\xF3q%\xE2\x16t]\x81/\x94\xC5e\x04\xBEK\xD7\x8C\xF6\x0C\x95\x93\x90a\x0C\xF3\x90`\x01\x85\x01\x90a,\xAEV[`@Q\x80\x91\x03\x90\xA1`\x0E\x82\x01T`\x02\x83\x01T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\xF2\x07VN\x90a\r!\x90\x84a*\xC4V[\x84`\x02\x01T`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\rD\x91\x81R` \x01\x90V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\r]W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\rqW=`\0\x80>=`\0\xFD[PPPPPPPV[`\0a\r\x88`\x1C\x84\x84a\x17\xA3V[a\n]`\x13\x82\x01\x84\x84a\x16\xE0V[`\x16T`\x19T`\0\x91\x82\x91a\r\xB2\x91a\xFF\xFF\x90\x81\x16\x91\x16a-\xAAV[\x91PP\x90V[`\0`A\x82\x14a\r\xCAWa\r\xCAa-\xC5V[`\0a\r\xD9\x83`\x01\x81\x87a-\xDBV[`@Qa\r\xE7\x92\x91\x90a.\x05V[`@Q\x90\x81\x90\x03\x90 \x94\x93PPPPV[`\0a\x04\xB6`\x13\x85\x85\x85a\x17\xFEV[`\0a\x04\xB6`\x1C\x85\x85\x85a\x18&V[`\x04T`\0\x90\x81[\x81\x81\x10\x15a\x04\xB6W\x83`\x01`\x01`\xA0\x1B\x03\x16\x83`\x04\x01\x82\x81T\x81\x10a\x0EEWa\x0EEa,\x98V[`\0\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x0F\x14W`\x04\x83\x01a\x0En`\x01\x84a,oV[\x81T\x81\x10a\x0E~Wa\x0E~a,\x98V[`\0\x91\x82R` \x90\x91 \x01T`\x04\x84\x01\x80T`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x83\x90\x81\x10a\x0E\xACWa\x0E\xACa,\x98V[\x90`\0R` `\0 \x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP\x82`\x04\x01\x80T\x80a\x0E\xEDWa\x0E\xEDa.\x15V[`\0\x82\x81R` \x90 \x81\x01`\0\x19\x90\x81\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90U\x01\x90Ua\x04\xB6V[`\x01\x01a\x0E\x1EV[\x80G\x10\x15a\x0F?W`@Qc\xCDx`Y`\xE0\x1B\x81R0`\x04\x82\x01R`$\x01a\x02kV[`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x0F\x8CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0F\x91V[``\x91P[PP\x90P\x80a\n]W`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t\x91\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x18\x93V[\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2`\x03\x01T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x04\rW`@Qc0\xCDtq`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01a\t\xDDV[\x84`\0[\x81\x81\x10\x15a\x11'W`\0a\x10X\x87\x87\x84\x81\x81\x10a\x10AWa\x10Aa,\x98V[\x90P` \x02\x81\x01\x90a\x10S\x91\x90a.+V[a\r\xB8V[\x90P\x88\x88\x83\x81\x81\x10a\x10lWa\x10la,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x10\x81\x91\x90a.qV[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x10\xB2W`@QcK\xE9%\x1D`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11\x1E\x89\x89\x84\x81\x81\x10a\x10\xC7Wa\x10\xC7a,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x10\xDC\x91\x90a.qV[\x88\x88\x85\x81\x81\x10a\x10\xEEWa\x10\xEEa,\x98V[\x90P` \x02\x81\x01\x90a\x11\0\x91\x90a.+V[\x88\x88\x87\x81\x81\x10a\x11\x12Wa\x11\x12a,\x98V[\x90P` \x02\x015a\x19\x8DV[P`\x01\x01a\x10\"V[PPPPPPPPV[`\0\x85`\0[\x81\x81\x10\x15a\x13\xC0W`\0a\x11V\x88\x88\x84\x81\x81\x10a\x10AWa\x10Aa,\x98V[\x90P\x89\x89\x83\x81\x81\x10a\x11jWa\x11ja,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x11\x7F\x91\x90a.qV[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x11\xB0W`@QcK\xE9%\x1D`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x11\xE1\x8B\x8B\x85\x81\x81\x10a\x11\xC7Wa\x11\xC7a,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x11\xDC\x91\x90a.qV[a\x19\x9DV[\x11\x15a\x12\0W`@Qc\x04r\xB3S`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12S\x8A\x8A\x84\x81\x81\x10a\x12\x15Wa\x12\x15a,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x12*\x91\x90a.qV[\x89\x89\x85\x81\x81\x10a\x12=`\0\xFD[PPPPPPPPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 Ta\xFF\xFF\x16\x15\x15a\t\x91V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x15\x17WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\t\x94V[P`\0a\t\x94V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x80\x85\x01` R`@\x90\x91 \x01T\x81\x81\x10\x15a\x15^W`@Qc\xACi6\x03`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x15h\x82\x82a,oV[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\x02\x94\x85\x01` R`@\x90 \x90\x93\x01\x91\x90\x91UPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\x15\xB8\x90\x83\x90a,oV[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x90\x91 \x01T\x90\x91P\x81\x15\x80\x15a\x15\xE5WP\x80\x15[\x15a\x16*W`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x82 \x82\x81U`\x01\x81\x01\x83\x90U\x90\x81\x01\x82\x90U\x90a\x16#`\x03\x83\x01\x82a(3V[PPa\x16KV[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x90 `\x01\x01\x82\x90U[a\x16V\x85\x85\x84a\x19\xC0V[\x82\x85`\x01\x01`\0\x82\x82Ta\x16j\x91\x90a,oV[\x90\x91UPPPPPPPV[`\0\x81`@Q` \x01a\x16\x8B\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x16\xAB\x85\x85`\x01\x85a\x1C\x86V[\x90P`\0\x80Q` a0\xF4\x839\x81Q\x91R`\x01\x85\x84\x84`@Qa\x16\xD1\x94\x93\x92\x91\x90a.\xBCV[`@Q\x80\x91\x03\x90\xA1PPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x80\x85\x01` R`@\x82 \x01\x80T\x83\x92\x90a\x17\x0C\x90\x84\x90a*\xC4V[\x90\x91UPPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\x17?\x90\x83\x90a*\xC4V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x81 `\x01\x90\x81\x01\x83\x90U\x86\x01\x80T\x92\x93P\x84\x92\x90\x91\x90a\x17x\x90\x84\x90a*\xC4V[\x90\x91UPa\x04\xB6\x90P\x84\x84\x83a\x1D}V[`\x14T`\0\x90\x81\x90a\r\xB2V[`\0\x80a\r\xB2`\x13a\x1F\xA9V[`\0\x81`@Q` \x01a\x17\xB8\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x17\xD8\x85\x85`\0\x85a\x1C\x86V[\x90P`\0\x80Q` a0\xF4\x839\x81Q\x91R`\0\x85\x84\x84`@Qa\x16\xD1\x94\x93\x92\x91\x90a.\xBCV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x02\x85\x01` R`@\x90 `\x03\x01a\x0Cq\x82\x84\x83a/\x07V[`\0a\x18k\x85\x85`\x02\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1C\x86\x92PPPV[\x90P`\0\x80Q` a0\xF4\x839\x81Q\x91R`\x02\x85\x85\x85\x85`@Qa\x16\xD1\x95\x94\x93\x92\x91\x90a/\xEFV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\x19|W`\0a\x18\xB7`\x01\x83a,oV[\x85T\x90\x91P`\0\x90a\x18\xCB\x90`\x01\x90a,oV[\x90P\x81\x81\x14a\x190W`\0\x86`\0\x01\x82\x81T\x81\x10a\x18\xEBWa\x18\xEBa,\x98V[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\x19\x0EWa\x19\x0Ea,\x98V[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a\x19AWa\x19Aa.\x15V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\t\x94V[`\0\x91PPa\t\x94V[P\x92\x91PPV[`\0a\x0Cq`\x1C\x86\x86\x86\x86a\x1F\xBAV[`\0\x80a\x19\xAB`\x13\x84a \x17V[\x93\x92PPPV[`\0a\n]`\x13\x84\x84a zV[a\x19\xCD`\x06\x84\x01\x83a\x14\xAAV[\x15a\x1AwW\x80`\0\x03a\x1A*Wa\x19\xE8`\x06\x84\x01\x84\x84a \xCAV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R\x7F1h\xBAf\x0E\xEDn\xF1\xDC\"X\xB2$|\xC0_\xD0\xF2\xF3P\xD3\x9Ej\xD2\xE2\xEB\xC7j\x80\0\xB4\x0B\x90` \x01[`@Q\x80\x91\x03\x90\xA1PPPV[a\x1A8`\x06\x84\x01\x84\x84a!ZV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F\xDA\x14\x8F\xAC.\x10c\x17K\xE7\xBC\x08\x95Wk\xDA\xBA\x90\xFD\x14\xE5uF?\xA2j\x96|\xB8\x95\xCA\xDD\x91\x01a\x1A\x1DV[a\x1A\x84`\x03\x84\x01\x83a\x14\xAAV[a\x1A\xA1W`@Qc*U\xCAS`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80`\0\x03a\x1BpWa\x1A\xB7`\x03\x84\x01\x84\x84a!\x82V[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R\x7FJL]\x1A(\x11\x80\xEE\xA1\xE9\x9D\x81w\xFAG\x98\xB9\xF7\xE0\x19\xD5\xC5~}\x8Ds\xC6\xA2!\x99\xAA[\x90` \x01`@Q\x80\x91\x03\x90\xA1`\x06\x83\x01Ta\xFF\xFF\x16\x15a\n]W`\0\x80a\x1B\x11`\x06\x86\x01\x86a\"\x12V[\x90\x92P\x90Pa\x1B#`\x06\x86\x01\x86a\"TV[a\x1B1`\x03\x86\x01\x86\x84a\"\xB2V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F.\x808\xF5\x81/v=`\0\xFD[PPPPV[\x7Fi\x1B\xB0?\xFC\x16\xC5o\xC9k\x82\xFD\x16\xCD\x1B7\x15\xF0\xBC<\xDCd\x07\0_I\xBBb\x05\x86\0\x95\x80T`\0\x19\x01a\x05\0W`@Qc)\xF7E\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81Ua\x05\x0Ca\t?V[a\x05\x14a\t\xAFV[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x05,Wa\x05,a\t\xD9V[4`\0\x03a\x05MW`@QcZx\xC5\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05V3a\n~V[\x15a\x05\x8EW`@Q\x80``\x01`@R\x80`2\x81R` \x01a0\xC2`2\x919`@Qc\x01U8\xB1`\xE0\x1B\x81R`\x04\x01a\x02k\x91\x90a,\\V[`A\x82\x14a\x05\xAFW`@Qc\x18\xDC\xA5\xE9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x05\xBB\x84\x84a\r\xB8V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\x05\xE6W`@QcK\xE9%\x1D`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16a\x06\x17Wa\x06\x003\x85\x85a\r\xF8V[a\x06\n34a\n\xA1V[a\x06\x12a\x0CxV[a\x06,V[a\x06\"3\x85\x85a\x0E\x07V[a\x06,34a\rzV[P`\0\x90UPPV[\x7Fi\x1B\xB0?\xFC\x16\xC5o\xC9k\x82\xFD\x16\xCD\x1B7\x15\xF0\xBC<\xDCd\x07\0_I\xBBb\x05\x86\0\x95\x80T`\0\x19\x01a\x06yW`@Qc)\xF7E\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81U`\0\x82\x90\x03a\x06\x9FW`@Qc\x106\xB5\xAD`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x06\xC8W`@Qc\x1B9\xF2\xF3`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x03` R`@\x90 T\x82\x11\x15a\x06\xF8W`@QcV\x9DE\xCF`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3`\0\x90\x81R`\x03` R`@\x81 \x80T\x84\x92\x90a\x07\x17\x90\x84\x90a,oV[\x90\x91UPP`\x02\x80T\x83\x91\x90`\0\x90a\x071\x90\x84\x90a,oV[\x90\x91UPP3`\0\x90\x81R`\x03` R`@\x81 T\x90\x03a\x07UWa\x07U3a\x0E\x16V[a\x07_3\x83a\x0F\x1CV[`\0\x90UPV[\x7Fi\x1B\xB0?\xFC\x16\xC5o\xC9k\x82\xFD\x16\xCD\x1B7\x15\xF0\xBC<\xDCd\x07\0_I\xBBb\x05\x86\0\x95\x80T`\0\x19\x01a\x07\xAAW`@Qc)\xF7E\xA7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81Ua\x07\xB6a\t?V[a\x07\xBEa\t\xAFV[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\x07\xD6Wa\x07\xD6a\t\xD9V[3`\0\x90\x81R`\x15` R`@\x81 `\x02\x01T\x90\x81\x90\x03a\x08\x0CW`@Qc;On+`\xE2\x1B\x81R3`\x04\x82\x01R`$\x01a\x02kV[a\x08\x17`%3a\x0F\xB3V[P3`\0\x90\x81R`$` R`@\x81 a\x080\x91a(3V[`\x12Ta\x01\0\x90\x04`\xFF\x16a\x08\x9CW3`\0\x90\x81R`\x03` R`@\x90 T\x80\x15a\x08\x8BW3`\0\x90\x81R`\x03` R`\x02\x80T\x83\x92\x90a\x08r\x90\x84\x90a,oV[\x90\x91UPa\x08\x81\x90P3a\x0E\x16V[a\x08\x8B3\x82a\x0F\x1CV[a\x08\x953\x83a\n.V[PPa\x08\xA8V[a\x08\xA63\x82a\nbV[P[`\0\x90UV[a\x08\xB6a\t\xAFV[a\x08\xBEa\x0F\xC8V[a\x08\xC6a\x10\x15V[\x84\x81\x14a\x08\xE6W`@Qc~e\x93Y`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84\x83\x14a\t\x06W`@Qc~e\x93Y`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x12Ta\x01\0\x90\x04`\xFF\x16\x15a\t)Wa\t$\x86\x86\x86\x86\x86\x86a\x10\x1EV[a\t7V[a\t7\x86\x86\x86\x86\x86\x86a\x111V[PPPPPPV[\x7F\xC4Q\xC9B\x9C'\xDBh\xF2\x86\xAB\x8Ah\xF3\x11\xF1\xDC\xCA\xB7\x03\xBA\x94#\xAE\xD2\x9C\xD3\x97\xAEc\xF8cT`\xFF\x16\x15a\x04\rW`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t\x91`\x03\x84\x01\x83a\x14\xAAV[\x90P[\x92\x91PPV[`\0a\t\x91\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x14\xD0V[`\x12Tb\x01\0\0\x90\x04`\xFF\x16\x15a\x04\rW`@Qc$\x8C\x8E\xFB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80[`\x13\x82\x01T`\xFF\x16`\x02\x81\x11\x15a\t\xF6Wa\t\xF6a,\x82V[\x14a\x03pW`@Q\x80`\x80\x01`@R\x80`E\x81R` \x01a1B`E\x919`@Qc\x01U8\xB1`\xE0\x1B\x81R`\x04\x01a\x02k\x91\x90a,\\V[`\0a\n<`\x13\x84\x84a\x15\x1FV[a\nJ`\x13\x82\x01\x84\x84a\x15\x8FV[a\n]`\x01`\x01`\xA0\x1B\x03\x84\x16\x83a\x0F\x1CV[PPPV[`\0a\np`\x1C\x84\x84a\x16vV[a\n]`\x13\x82\x01\x84\x84a\x15\x1FV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x15` R`@\x81 `\x02\x01T\x15\x15a\t\x94V[`\0a\n\xAF`\x13\x84\x84a\x16\xE0V[a\n\xBD`\x13\x82\x01\x84\x84a\x17\x16V[`\x12\x81\x01Ta\x01\0\x90\x04`\xFF\x16a\n]W`\x01\x81\x01T`\0\x90\x81[\x81\x81\x10\x15a\x0B2W\x85`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01\x01\x82\x81T\x81\x10a\n\xFFWa\n\xFFa,\x98V[`\0\x91\x82R` \x90\x91 `\x01`\x03\x90\x92\x02\x01\x01T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x0B*W`\x01\x92Pa\x0B2V[`\x01\x01a\n\xD8V[P\x81a\x0CqW`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x81\x81R`\x15\x85\x01` \x81\x81R`@\x80\x84 `\x01\x81\x01T\x82Q``\x81\x01\x84R\x81\x81R\x80\x85\x01\x88\x90R\x96\x86R\x93\x90\x92R`\x03\x90\x91\x01\x80T\x92\x94\x92\x91\x83\x01\x91a\x0B\x89\x90a*\xD7V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0B\xB5\x90a*\xD7V[\x80\x15a\x0C\x02W\x80`\x1F\x10a\x0B\xD7Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0C\x02V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0B\xE5W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x90\x92RPP`\x01\x86\x81\x01\x80T\x80\x83\x01\x82U`\0\x91\x82R` \x91\x82\x90 \x84Q`\x03\x90\x92\x02\x01\x90\x81U\x90\x83\x01Q\x91\x81\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x92\x90\x92\x17\x90\x91U`@\x82\x01Q\x91\x92P\x82\x91`\x02\x82\x01\x90a\x0Ck\x90\x82a+WV[PPPPP[PPPPPV[`\0\x80a\x0C\x83a\x17\x89V[\x90P\x81`\n\x01T\x81\x10a\x02\xBBW`\x0C\x82\x01T`\x01`\x01`@\x1B\x03\x16a\x0C\xA6a\x17\x96V[a\xFF\xFF\x16\x10a\x02\xBBW`\x12\x82\x01\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U`@Q\x7FI\x14\xD8\x80c'Z%\xA1;-\xF3q%\xE2\x16t]\x81/\x94\xC5e\x04\xBEK\xD7\x8C\xF6\x0C\x95\x93\x90a\x0C\xF3\x90`\x01\x85\x01\x90a,\xAEV[`@Q\x80\x91\x03\x90\xA1`\x0E\x82\x01T`\x02\x83\x01T`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\xF2\x07VN\x90a\r!\x90\x84a*\xC4V[\x84`\x02\x01T`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\rD\x91\x81R` \x01\x90V[`\0`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\r]W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\rqW=`\0\x80>=`\0\xFD[PPPPPPPV[`\0a\r\x88`\x1C\x84\x84a\x17\xA3V[a\n]`\x13\x82\x01\x84\x84a\x16\xE0V[`\x16T`\x19T`\0\x91\x82\x91a\r\xB2\x91a\xFF\xFF\x90\x81\x16\x91\x16a-\xAAV[\x91PP\x90V[`\0`A\x82\x14a\r\xCAWa\r\xCAa-\xC5V[`\0a\r\xD9\x83`\x01\x81\x87a-\xDBV[`@Qa\r\xE7\x92\x91\x90a.\x05V[`@Q\x90\x81\x90\x03\x90 \x94\x93PPPPV[`\0a\x04\xB6`\x13\x85\x85\x85a\x17\xFEV[`\0a\x04\xB6`\x1C\x85\x85\x85a\x18&V[`\x04T`\0\x90\x81[\x81\x81\x10\x15a\x04\xB6W\x83`\x01`\x01`\xA0\x1B\x03\x16\x83`\x04\x01\x82\x81T\x81\x10a\x0EEWa\x0EEa,\x98V[`\0\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x0F\x14W`\x04\x83\x01a\x0En`\x01\x84a,oV[\x81T\x81\x10a\x0E~Wa\x0E~a,\x98V[`\0\x91\x82R` \x90\x91 \x01T`\x04\x84\x01\x80T`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91\x83\x90\x81\x10a\x0E\xACWa\x0E\xACa,\x98V[\x90`\0R` `\0 \x01`\0a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UP\x82`\x04\x01\x80T\x80a\x0E\xEDWa\x0E\xEDa.\x15V[`\0\x82\x81R` \x90 \x81\x01`\0\x19\x90\x81\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90U\x01\x90Ua\x04\xB6V[`\x01\x01a\x0E\x1EV[\x80G\x10\x15a\x0F?W`@Qc\xCDx`Y`\xE0\x1B\x81R0`\x04\x82\x01R`$\x01a\x02kV[`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`@Q`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x0F\x8CW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x0F\x91V[``\x91P[PP\x90P\x80a\n]W`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\t\x91\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x18\x93V[\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2`\x03\x01T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x04\rW`@Qc0\xCDtq`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`\x01a\t\xDDV[\x84`\0[\x81\x81\x10\x15a\x11'W`\0a\x10X\x87\x87\x84\x81\x81\x10a\x10AWa\x10Aa,\x98V[\x90P` \x02\x81\x01\x90a\x10S\x91\x90a.+V[a\r\xB8V[\x90P\x88\x88\x83\x81\x81\x10a\x10lWa\x10la,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x10\x81\x91\x90a.qV[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x10\xB2W`@QcK\xE9%\x1D`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11\x1E\x89\x89\x84\x81\x81\x10a\x10\xC7Wa\x10\xC7a,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x10\xDC\x91\x90a.qV[\x88\x88\x85\x81\x81\x10a\x10\xEEWa\x10\xEEa,\x98V[\x90P` \x02\x81\x01\x90a\x11\0\x91\x90a.+V[\x88\x88\x87\x81\x81\x10a\x11\x12Wa\x11\x12a,\x98V[\x90P` \x02\x015a\x19\x8DV[P`\x01\x01a\x10\"V[PPPPPPPPV[`\0\x85`\0[\x81\x81\x10\x15a\x13\xC0W`\0a\x11V\x88\x88\x84\x81\x81\x10a\x10AWa\x10Aa,\x98V[\x90P\x89\x89\x83\x81\x81\x10a\x11jWa\x11ja,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x11\x7F\x91\x90a.qV[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x11\xB0W`@QcK\xE9%\x1D`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x11\xE1\x8B\x8B\x85\x81\x81\x10a\x11\xC7Wa\x11\xC7a,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x11\xDC\x91\x90a.qV[a\x19\x9DV[\x11\x15a\x12\0W`@Qc\x04r\xB3S`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12S\x8A\x8A\x84\x81\x81\x10a\x12\x15Wa\x12\x15a,\x98V[\x90P` \x02\x01` \x81\x01\x90a\x12*\x91\x90a.qV[\x89\x89\x85\x81\x81\x10a\x12=`\0\xFD[PPPPPPPPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 Ta\xFF\xFF\x16\x15\x15a\t\x91V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x15\x17WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\t\x94V[P`\0a\t\x94V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x80\x85\x01` R`@\x90\x91 \x01T\x81\x81\x10\x15a\x15^W`@Qc\xACi6\x03`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x15h\x82\x82a,oV[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\x02\x94\x85\x01` R`@\x90 \x90\x93\x01\x91\x90\x91UPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\x15\xB8\x90\x83\x90a,oV[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x90\x91 \x01T\x90\x91P\x81\x15\x80\x15a\x15\xE5WP\x80\x15[\x15a\x16*W`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x80\x87\x01` R`@\x82 \x82\x81U`\x01\x81\x01\x83\x90U\x90\x81\x01\x82\x90U\x90a\x16#`\x03\x83\x01\x82a(3V[PPa\x16KV[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x90 `\x01\x01\x82\x90U[a\x16V\x85\x85\x84a\x19\xC0V[\x82\x85`\x01\x01`\0\x82\x82Ta\x16j\x91\x90a,oV[\x90\x91UPPPPPPPV[`\0\x81`@Q` \x01a\x16\x8B\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x16\xAB\x85\x85`\x01\x85a\x1C\x86V[\x90P`\0\x80Q` a0\xF4\x839\x81Q\x91R`\x01\x85\x84\x84`@Qa\x16\xD1\x94\x93\x92\x91\x90a.\xBCV[`@Q\x80\x91\x03\x90\xA1PPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x80\x85\x01` R`@\x82 \x01\x80T\x83\x92\x90a\x17\x0C\x90\x84\x90a*\xC4V[\x90\x91UPPPPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x02\x84\x01` R`@\x81 `\x01\x01Ta\x17?\x90\x83\x90a*\xC4V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x02\x86\x01` R`@\x81 `\x01\x90\x81\x01\x83\x90U\x86\x01\x80T\x92\x93P\x84\x92\x90\x91\x90a\x17x\x90\x84\x90a*\xC4V[\x90\x91UPa\x04\xB6\x90P\x84\x84\x83a\x1D}V[`\x14T`\0\x90\x81\x90a\r\xB2V[`\0\x80a\r\xB2`\x13a\x1F\xA9V[`\0\x81`@Q` \x01a\x17\xB8\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x17\xD8\x85\x85`\0\x85a\x1C\x86V[\x90P`\0\x80Q` a0\xF4\x839\x81Q\x91R`\0\x85\x84\x84`@Qa\x16\xD1\x94\x93\x92\x91\x90a.\xBCV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x02\x85\x01` R`@\x90 `\x03\x01a\x0Cq\x82\x84\x83a/\x07V[`\0a\x18k\x85\x85`\x02\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x1C\x86\x92PPPV[\x90P`\0\x80Q` a0\xF4\x839\x81Q\x91R`\x02\x85\x85\x85\x85`@Qa\x16\xD1\x95\x94\x93\x92\x91\x90a/\xEFV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\x19|W`\0a\x18\xB7`\x01\x83a,oV[\x85T\x90\x91P`\0\x90a\x18\xCB\x90`\x01\x90a,oV[\x90P\x81\x81\x14a\x190W`\0\x86`\0\x01\x82\x81T\x81\x10a\x18\xEBWa\x18\xEBa,\x98V[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\x19\x0EWa\x19\x0Ea,\x98V[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a\x19AWa\x19Aa.\x15V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\t\x94V[`\0\x91PPa\t\x94V[P\x92\x91PPV[`\0a\x0Cq`\x1C\x86\x86\x86\x86a\x1F\xBAV[`\0\x80a\x19\xAB`\x13\x84a \x17V[\x93\x92PPPV[`\0a\n]`\x13\x84\x84a zV[a\x19\xCD`\x06\x84\x01\x83a\x14\xAAV[\x15a\x1AwW\x80`\0\x03a\x1A*Wa\x19\xE8`\x06\x84\x01\x84\x84a \xCAV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R\x7F1h\xBAf\x0E\xEDn\xF1\xDC\"X\xB2$|\xC0_\xD0\xF2\xF3P\xD3\x9Ej\xD2\xE2\xEB\xC7j\x80\0\xB4\x0B\x90` \x01[`@Q\x80\x91\x03\x90\xA1PPPV[a\x1A8`\x06\x84\x01\x84\x84a!ZV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F\xDA\x14\x8F\xAC.\x10c\x17K\xE7\xBC\x08\x95Wk\xDA\xBA\x90\xFD\x14\xE5uF?\xA2j\x96|\xB8\x95\xCA\xDD\x91\x01a\x1A\x1DV[a\x1A\x84`\x03\x84\x01\x83a\x14\xAAV[a\x1A\xA1W`@Qc*U\xCAS`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80`\0\x03a\x1BpWa\x1A\xB7`\x03\x84\x01\x84\x84a!\x82V[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R\x7FJL]\x1A(\x11\x80\xEE\xA1\xE9\x9D\x81w\xFAG\x98\xB9\xF7\xE0\x19\xD5\xC5~}\x8Ds\xC6\xA2!\x99\xAA[\x90` \x01`@Q\x80\x91\x03\x90\xA1`\x06\x83\x01Ta\xFF\xFF\x16\x15a\n]W`\0\x80a\x1B\x11`\x06\x86\x01\x86a\"\x12V[\x90\x92P\x90Pa\x1B#`\x06\x86\x01\x86a\"TV[a\x1B1`\x03\x86\x01\x86\x84a\"\xB2V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F.\x808\xF5\x81/v(::ethers::contract::Contract); + impl ::core::clone::Clone for SubnetActorManagerFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SubnetActorManagerFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SubnetActorManagerFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SubnetActorManagerFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(SubnetActorManagerFacet)) + .field(&self.address()) + .finish() + } + } + impl SubnetActorManagerFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SUBNETACTORMANAGERFACET_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SUBNETACTORMANAGERFACET_ABI.clone(), + SUBNETACTORMANAGERFACET_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `addBootstrapNode` (0x10fd4261) function + pub fn add_bootstrap_node( + &self, + net_address: ::std::string::String, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([16, 253, 66, 97], net_address) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `join` (0x6170b162) function + pub fn join( + &self, + public_key: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 112, 177, 98], public_key) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `kill` (0x41c0e1b5) function + pub fn kill(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([65, 192, 225, 181], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `leave` (0xd66d9e19) function + pub fn leave(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 109, 158, 25], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `preFund` (0x0b7fbe60) function + pub fn pre_fund(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([11, 127, 190, 96], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `preRelease` (0x66783c9b) function + pub fn pre_release( + &self, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([102, 120, 60, 155], amount) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setFederatedPower` (0xda5d09ee) function + pub fn set_federated_power( + &self, + validators: ::std::vec::Vec<::ethers::core::types::Address>, + public_keys: ::std::vec::Vec<::ethers::core::types::Bytes>, + powers: ::std::vec::Vec<::ethers::core::types::U256>, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 93, 9, 238], (validators, public_keys, powers)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `stake` (0x3a4b66f1) function + pub fn stake(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([58, 75, 102, 241], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `unstake` (0x2e17de78) function + pub fn unstake( + &self, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 23, 222, 120], amount) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Paused` event + pub fn paused_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PausedFilter> { + self.0.event() + } + ///Gets the contract's `Unpaused` event + pub fn unpaused_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UnpausedFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + SubnetActorManagerFacetEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for SubnetActorManagerFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressInsufficientBalance` with signature `AddressInsufficientBalance(address)` and selector `0xcd786059` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "AddressInsufficientBalance", + abi = "AddressInsufficientBalance(address)" + )] + pub struct AddressInsufficientBalance { + pub account: ::ethers::core::types::Address, + } + ///Custom Error type `AddressShouldBeValidator` with signature `AddressShouldBeValidator()` and selector `0x2a55ca53` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "AddressShouldBeValidator", abi = "AddressShouldBeValidator()")] + pub struct AddressShouldBeValidator; + ///Custom Error type `CannotReleaseZero` with signature `CannotReleaseZero()` and selector `0xc79cad7b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "CannotReleaseZero", abi = "CannotReleaseZero()")] + pub struct CannotReleaseZero; + ///Custom Error type `CollateralIsZero` with signature `CollateralIsZero()` and selector `0xb4f18b02` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "CollateralIsZero", abi = "CollateralIsZero()")] + pub struct CollateralIsZero; + ///Custom Error type `DuplicatedGenesisValidator` with signature `DuplicatedGenesisValidator()` and selector `0x472b3530` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "DuplicatedGenesisValidator", + abi = "DuplicatedGenesisValidator()" + )] + pub struct DuplicatedGenesisValidator; + ///Custom Error type `EmptyAddress` with signature `EmptyAddress()` and selector `0x7138356f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EmptyAddress", abi = "EmptyAddress()")] + pub struct EmptyAddress; + ///Custom Error type `EnforcedPause` with signature `EnforcedPause()` and selector `0xd93c0665` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EnforcedPause", abi = "EnforcedPause()")] + pub struct EnforcedPause; + ///Custom Error type `ExpectedPause` with signature `ExpectedPause()` and selector `0x8dfc202b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ExpectedPause", abi = "ExpectedPause()")] + pub struct ExpectedPause; + ///Custom Error type `FailedInnerCall` with signature `FailedInnerCall()` and selector `0x1425ea42` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedInnerCall", abi = "FailedInnerCall()")] + pub struct FailedInnerCall; + ///Custom Error type `InvalidFederationPayload` with signature `InvalidFederationPayload()` and selector `0x7e659359` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFederationPayload", abi = "InvalidFederationPayload()")] + pub struct InvalidFederationPayload; + ///Custom Error type `InvalidPublicKeyLength` with signature `InvalidPublicKeyLength()` and selector `0x637297a4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPublicKeyLength", abi = "InvalidPublicKeyLength()")] + pub struct InvalidPublicKeyLength; + ///Custom Error type `MethodNotAllowed` with signature `MethodNotAllowed(string)` and selector `0x015538b1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "MethodNotAllowed", abi = "MethodNotAllowed(string)")] + pub struct MethodNotAllowed { + pub reason: ::std::string::String, + } + ///Custom Error type `NotAllValidatorsHaveLeft` with signature `NotAllValidatorsHaveLeft()` and selector `0xd6c44aa2` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotAllValidatorsHaveLeft", abi = "NotAllValidatorsHaveLeft()")] + pub struct NotAllValidatorsHaveLeft; + ///Custom Error type `NotEnoughBalance` with signature `NotEnoughBalance()` and selector `0xad3a8b9e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotEnoughBalance", abi = "NotEnoughBalance()")] + pub struct NotEnoughBalance; + ///Custom Error type `NotEnoughCollateral` with signature `NotEnoughCollateral()` and selector `0x34477cc0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotEnoughCollateral", abi = "NotEnoughCollateral()")] + pub struct NotEnoughCollateral; + ///Custom Error type `NotEnoughFunds` with signature `NotEnoughFunds()` and selector `0x81b5ad68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotEnoughFunds", abi = "NotEnoughFunds()")] + pub struct NotEnoughFunds; + ///Custom Error type `NotEnoughGenesisValidators` with signature `NotEnoughGenesisValidators()` and selector `0x62901620` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NotEnoughGenesisValidators", + abi = "NotEnoughGenesisValidators()" + )] + pub struct NotEnoughGenesisValidators; + ///Custom Error type `NotOwner` with signature `NotOwner()` and selector `0x30cd7471` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotOwner", abi = "NotOwner()")] + pub struct NotOwner; + ///Custom Error type `NotOwnerOfPublicKey` with signature `NotOwnerOfPublicKey()` and selector `0x97d24a3a` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotOwnerOfPublicKey", abi = "NotOwnerOfPublicKey()")] + pub struct NotOwnerOfPublicKey; + ///Custom Error type `NotValidator` with signature `NotValidator(address)` and selector `0xed3db8ac` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotValidator", abi = "NotValidator(address)")] + pub struct NotValidator(pub ::ethers::core::types::Address); + ///Custom Error type `PQDoesNotContainAddress` with signature `PQDoesNotContainAddress()` and selector `0xf2755e37` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PQDoesNotContainAddress", abi = "PQDoesNotContainAddress()")] + pub struct PQDoesNotContainAddress; + ///Custom Error type `PQEmpty` with signature `PQEmpty()` and selector `0x40d9b011` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PQEmpty", abi = "PQEmpty()")] + pub struct PQEmpty; + ///Custom Error type `ReentrancyError` with signature `ReentrancyError()` and selector `0x29f745a7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ReentrancyError", abi = "ReentrancyError()")] + pub struct ReentrancyError; + ///Custom Error type `SubnetAlreadyBootstrapped` with signature `SubnetAlreadyBootstrapped()` and selector `0x3673e5e6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SubnetAlreadyBootstrapped", abi = "SubnetAlreadyBootstrapped()")] + pub struct SubnetAlreadyBootstrapped; + ///Custom Error type `SubnetAlreadyKilled` with signature `SubnetAlreadyKilled()` and selector `0x49191df6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SubnetAlreadyKilled", abi = "SubnetAlreadyKilled()")] + pub struct SubnetAlreadyKilled; + ///Custom Error type `WithdrawExceedingCollateral` with signature `WithdrawExceedingCollateral()` and selector `0xac693603` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "WithdrawExceedingCollateral", + abi = "WithdrawExceedingCollateral()" + )] + pub struct WithdrawExceedingCollateral; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorManagerFacetErrors { + AddressInsufficientBalance(AddressInsufficientBalance), + AddressShouldBeValidator(AddressShouldBeValidator), + CannotReleaseZero(CannotReleaseZero), + CollateralIsZero(CollateralIsZero), + DuplicatedGenesisValidator(DuplicatedGenesisValidator), + EmptyAddress(EmptyAddress), + EnforcedPause(EnforcedPause), + ExpectedPause(ExpectedPause), + FailedInnerCall(FailedInnerCall), + InvalidFederationPayload(InvalidFederationPayload), + InvalidPublicKeyLength(InvalidPublicKeyLength), + MethodNotAllowed(MethodNotAllowed), + NotAllValidatorsHaveLeft(NotAllValidatorsHaveLeft), + NotEnoughBalance(NotEnoughBalance), + NotEnoughCollateral(NotEnoughCollateral), + NotEnoughFunds(NotEnoughFunds), + NotEnoughGenesisValidators(NotEnoughGenesisValidators), + NotOwner(NotOwner), + NotOwnerOfPublicKey(NotOwnerOfPublicKey), + NotValidator(NotValidator), + PQDoesNotContainAddress(PQDoesNotContainAddress), + PQEmpty(PQEmpty), + ReentrancyError(ReentrancyError), + SubnetAlreadyBootstrapped(SubnetAlreadyBootstrapped), + SubnetAlreadyKilled(SubnetAlreadyKilled), + WithdrawExceedingCollateral(WithdrawExceedingCollateral), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorManagerFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressInsufficientBalance(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressShouldBeValidator(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CannotReleaseZero(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CollateralIsZero(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::DuplicatedGenesisValidator(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::EmptyAddress(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::EnforcedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ExpectedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedInnerCall(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidFederationPayload(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidPublicKeyLength(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::MethodNotAllowed(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotAllValidatorsHaveLeft(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotEnoughBalance(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotEnoughCollateral(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotEnoughFunds(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotEnoughGenesisValidators(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotOwner(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotOwnerOfPublicKey(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotValidator(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PQDoesNotContainAddress(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PQEmpty(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ReentrancyError(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SubnetAlreadyBootstrapped(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SubnetAlreadyKilled(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::WithdrawExceedingCollateral(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorManagerFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressInsufficientBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::AddressShouldBeValidator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CannotReleaseZero(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CollateralIsZero(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DuplicatedGenesisValidator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EmptyAddress(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EnforcedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExpectedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedInnerCall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFederationPayload(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPublicKeyLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::MethodNotAllowed(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotAllValidatorsHaveLeft(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotEnoughBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotEnoughCollateral(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotEnoughFunds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotEnoughGenesisValidators(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotOwner(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotOwnerOfPublicKey(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotValidator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PQDoesNotContainAddress(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PQEmpty(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ReentrancyError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SubnetAlreadyBootstrapped(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SubnetAlreadyKilled(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::WithdrawExceedingCollateral(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for SubnetActorManagerFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for SubnetActorManagerFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressInsufficientBalance(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::AddressShouldBeValidator(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CannotReleaseZero(element) => ::core::fmt::Display::fmt(element, f), + Self::CollateralIsZero(element) => ::core::fmt::Display::fmt(element, f), + Self::DuplicatedGenesisValidator(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::EmptyAddress(element) => ::core::fmt::Display::fmt(element, f), + Self::EnforcedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::ExpectedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::FailedInnerCall(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFederationPayload(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidPublicKeyLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::MethodNotAllowed(element) => ::core::fmt::Display::fmt(element, f), + Self::NotAllValidatorsHaveLeft(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotEnoughBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NotEnoughCollateral(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotEnoughFunds(element) => ::core::fmt::Display::fmt(element, f), + Self::NotEnoughGenesisValidators(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotOwner(element) => ::core::fmt::Display::fmt(element, f), + Self::NotOwnerOfPublicKey(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotValidator(element) => ::core::fmt::Display::fmt(element, f), + Self::PQDoesNotContainAddress(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PQEmpty(element) => ::core::fmt::Display::fmt(element, f), + Self::ReentrancyError(element) => ::core::fmt::Display::fmt(element, f), + Self::SubnetAlreadyBootstrapped(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SubnetAlreadyKilled(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::WithdrawExceedingCollateral(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for SubnetActorManagerFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: AddressInsufficientBalance) -> Self { + Self::AddressInsufficientBalance(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: AddressShouldBeValidator) -> Self { + Self::AddressShouldBeValidator(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: CannotReleaseZero) -> Self { + Self::CannotReleaseZero(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: CollateralIsZero) -> Self { + Self::CollateralIsZero(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: DuplicatedGenesisValidator) -> Self { + Self::DuplicatedGenesisValidator(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: EmptyAddress) -> Self { + Self::EmptyAddress(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: EnforcedPause) -> Self { + Self::EnforcedPause(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: ExpectedPause) -> Self { + Self::ExpectedPause(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: FailedInnerCall) -> Self { + Self::FailedInnerCall(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: InvalidFederationPayload) -> Self { + Self::InvalidFederationPayload(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: InvalidPublicKeyLength) -> Self { + Self::InvalidPublicKeyLength(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: MethodNotAllowed) -> Self { + Self::MethodNotAllowed(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: NotAllValidatorsHaveLeft) -> Self { + Self::NotAllValidatorsHaveLeft(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: NotEnoughBalance) -> Self { + Self::NotEnoughBalance(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: NotEnoughCollateral) -> Self { + Self::NotEnoughCollateral(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: NotEnoughFunds) -> Self { + Self::NotEnoughFunds(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: NotEnoughGenesisValidators) -> Self { + Self::NotEnoughGenesisValidators(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: NotOwner) -> Self { + Self::NotOwner(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: NotOwnerOfPublicKey) -> Self { + Self::NotOwnerOfPublicKey(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: NotValidator) -> Self { + Self::NotValidator(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: PQDoesNotContainAddress) -> Self { + Self::PQDoesNotContainAddress(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: PQEmpty) -> Self { + Self::PQEmpty(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: ReentrancyError) -> Self { + Self::ReentrancyError(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: SubnetAlreadyBootstrapped) -> Self { + Self::SubnetAlreadyBootstrapped(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetErrors { + fn from(value: SubnetAlreadyKilled) -> Self { + Self::SubnetAlreadyKilled(value) + } + } + impl ::core::convert::From + for SubnetActorManagerFacetErrors { + fn from(value: WithdrawExceedingCollateral) -> Self { + Self::WithdrawExceedingCollateral(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Paused", abi = "Paused(address)")] + pub struct PausedFilter { + pub account: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Unpaused", abi = "Unpaused(address)")] + pub struct UnpausedFilter { + pub account: ::ethers::core::types::Address, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorManagerFacetEvents { + PausedFilter(PausedFilter), + UnpausedFilter(UnpausedFilter), + } + impl ::ethers::contract::EthLogDecode for SubnetActorManagerFacetEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = PausedFilter::decode_log(log) { + return Ok(SubnetActorManagerFacetEvents::PausedFilter(decoded)); + } + if let Ok(decoded) = UnpausedFilter::decode_log(log) { + return Ok(SubnetActorManagerFacetEvents::UnpausedFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for SubnetActorManagerFacetEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::PausedFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UnpausedFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SubnetActorManagerFacetEvents { + fn from(value: PausedFilter) -> Self { + Self::PausedFilter(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetEvents { + fn from(value: UnpausedFilter) -> Self { + Self::UnpausedFilter(value) + } + } + ///Container type for all input parameters for the `addBootstrapNode` function with signature `addBootstrapNode(string)` and selector `0x10fd4261` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "addBootstrapNode", abi = "addBootstrapNode(string)")] + pub struct AddBootstrapNodeCall { + pub net_address: ::std::string::String, + } + ///Container type for all input parameters for the `join` function with signature `join(bytes)` and selector `0x6170b162` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "join", abi = "join(bytes)")] + pub struct JoinCall { + pub public_key: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `kill` function with signature `kill()` and selector `0x41c0e1b5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "kill", abi = "kill()")] + pub struct KillCall; + ///Container type for all input parameters for the `leave` function with signature `leave()` and selector `0xd66d9e19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "leave", abi = "leave()")] + pub struct LeaveCall; + ///Container type for all input parameters for the `preFund` function with signature `preFund()` and selector `0x0b7fbe60` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "preFund", abi = "preFund()")] + pub struct PreFundCall; + ///Container type for all input parameters for the `preRelease` function with signature `preRelease(uint256)` and selector `0x66783c9b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "preRelease", abi = "preRelease(uint256)")] + pub struct PreReleaseCall { + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `setFederatedPower` function with signature `setFederatedPower(address[],bytes[],uint256[])` and selector `0xda5d09ee` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "setFederatedPower", + abi = "setFederatedPower(address[],bytes[],uint256[])" + )] + pub struct SetFederatedPowerCall { + pub validators: ::std::vec::Vec<::ethers::core::types::Address>, + pub public_keys: ::std::vec::Vec<::ethers::core::types::Bytes>, + pub powers: ::std::vec::Vec<::ethers::core::types::U256>, + } + ///Container type for all input parameters for the `stake` function with signature `stake()` and selector `0x3a4b66f1` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "stake", abi = "stake()")] + pub struct StakeCall; + ///Container type for all input parameters for the `unstake` function with signature `unstake(uint256)` and selector `0x2e17de78` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "unstake", abi = "unstake(uint256)")] + pub struct UnstakeCall { + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorManagerFacetCalls { + AddBootstrapNode(AddBootstrapNodeCall), + Join(JoinCall), + Kill(KillCall), + Leave(LeaveCall), + PreFund(PreFundCall), + PreRelease(PreReleaseCall), + SetFederatedPower(SetFederatedPowerCall), + Stake(StakeCall), + Unstake(UnstakeCall), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorManagerFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddBootstrapNode(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Join(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Kill(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Leave(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PreFund(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PreRelease(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SetFederatedPower(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Stake(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Unstake(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorManagerFacetCalls { + fn encode(self) -> Vec { + match self { + Self::AddBootstrapNode(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Join(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Kill(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Leave(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::PreFund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::PreRelease(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetFederatedPower(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Stake(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Unstake(element) => ::ethers::core::abi::AbiEncode::encode(element), + } + } + } + impl ::core::fmt::Display for SubnetActorManagerFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddBootstrapNode(element) => ::core::fmt::Display::fmt(element, f), + Self::Join(element) => ::core::fmt::Display::fmt(element, f), + Self::Kill(element) => ::core::fmt::Display::fmt(element, f), + Self::Leave(element) => ::core::fmt::Display::fmt(element, f), + Self::PreFund(element) => ::core::fmt::Display::fmt(element, f), + Self::PreRelease(element) => ::core::fmt::Display::fmt(element, f), + Self::SetFederatedPower(element) => ::core::fmt::Display::fmt(element, f), + Self::Stake(element) => ::core::fmt::Display::fmt(element, f), + Self::Unstake(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: AddBootstrapNodeCall) -> Self { + Self::AddBootstrapNode(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: JoinCall) -> Self { + Self::Join(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: KillCall) -> Self { + Self::Kill(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: LeaveCall) -> Self { + Self::Leave(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: PreFundCall) -> Self { + Self::PreFund(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: PreReleaseCall) -> Self { + Self::PreRelease(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: SetFederatedPowerCall) -> Self { + Self::SetFederatedPower(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: StakeCall) -> Self { + Self::Stake(value) + } + } + impl ::core::convert::From for SubnetActorManagerFacetCalls { + fn from(value: UnstakeCall) -> Self { + Self::Unstake(value) + } + } +} diff --git a/contracts/binding/src/subnet_actor_pause_facet.rs b/contracts/binding/src/subnet_actor_pause_facet.rs new file mode 100644 index 000000000..6b7af9696 --- /dev/null +++ b/contracts/binding/src/subnet_actor_pause_facet.rs @@ -0,0 +1,595 @@ +pub use subnet_actor_pause_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod subnet_actor_pause_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("pause"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("pause"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("paused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("paused"), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Bool, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bool"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("unpause"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("unpause"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ]), + events: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("Paused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Paused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("Unpaused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Unpaused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ]), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("EnforcedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("EnforcedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ExpectedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ExpectedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotOwner"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotOwner"), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static SUBNETACTORPAUSEFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + #[rustfmt::skip] + const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x02b\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80c?K\xA8:\x14a\0FW\x80c\\\x97Z\xBB\x14a\0PW\x80c\x84V\xCBY\x14a\0lW[`\0\x80\xFD[a\0Na\0tV[\0[a\0Xa\0\x86V[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0Na\0\xA6V[a\0|a\0\xB6V[a\0\x84a\x01\x03V[V[`\0a\0\xA1`\0\x80Q` a\x02\r\x839\x81Q\x91RT`\xFF\x16\x90V[\x90P\x90V[a\0\xAEa\0\xB6V[a\0\x84a\x01YV[\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2`\x03\x01T`\x01`\x01`\xA0\x1B\x03\x163\x14a\0\x84W`@Qc0\xCDtq`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\x0Ba\x01\xABV[`\0\x80Q` a\x02\r\x839\x81Q\x91R\x80T`\xFF\x19\x16\x81U`@Q3\x81R\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA\x90` \x01[`@Q\x80\x91\x03\x90\xA1PV[a\x01aa\x01\xDBV[`\0\x80Q` a\x02\r\x839\x81Q\x91R\x80T`\xFF\x19\x16`\x01\x17\x81U`@Q3\x81R\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X\x90` \x01a\x01NV[`\0\x80Q` a\x02\r\x839\x81Q\x91RT`\xFF\x16a\0\x84W`@Qc\x8D\xFC +`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80Q` a\x02\r\x839\x81Q\x91RT`\xFF\x16\x15a\0\x84W`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD\xFE\xC4Q\xC9B\x9C'\xDBh\xF2\x86\xAB\x8Ah\xF3\x11\xF1\xDC\xCA\xB7\x03\xBA\x94#\xAE\xD2\x9C\xD3\x97\xAEc\xF8c\xA2dipfsX\"\x12 \x95\x81\xBE\x8B\xCE\x8E\x84\xA5\xA0\x01\xCD/\x96\xB32\x8B\xD7\x06\xC8)as7\xA0\xB5\xC2\xD5\n(\x10=\xE4dsolcC\0\x08\x13\x003"; + /// The bytecode of the contract. + pub static SUBNETACTORPAUSEFACET_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0AW`\x005`\xE0\x1C\x80c?K\xA8:\x14a\0FW\x80c\\\x97Z\xBB\x14a\0PW\x80c\x84V\xCBY\x14a\0lW[`\0\x80\xFD[a\0Na\0tV[\0[a\0Xa\0\x86V[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0Na\0\xA6V[a\0|a\0\xB6V[a\0\x84a\x01\x03V[V[`\0a\0\xA1`\0\x80Q` a\x02\r\x839\x81Q\x91RT`\xFF\x16\x90V[\x90P\x90V[a\0\xAEa\0\xB6V[a\0\x84a\x01YV[\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2`\x03\x01T`\x01`\x01`\xA0\x1B\x03\x163\x14a\0\x84W`@Qc0\xCDtq`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\x0Ba\x01\xABV[`\0\x80Q` a\x02\r\x839\x81Q\x91R\x80T`\xFF\x19\x16\x81U`@Q3\x81R\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA\x90` \x01[`@Q\x80\x91\x03\x90\xA1PV[a\x01aa\x01\xDBV[`\0\x80Q` a\x02\r\x839\x81Q\x91R\x80T`\xFF\x19\x16`\x01\x17\x81U`@Q3\x81R\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X\x90` \x01a\x01NV[`\0\x80Q` a\x02\r\x839\x81Q\x91RT`\xFF\x16a\0\x84W`@Qc\x8D\xFC +`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80Q` a\x02\r\x839\x81Q\x91RT`\xFF\x16\x15a\0\x84W`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD\xFE\xC4Q\xC9B\x9C'\xDBh\xF2\x86\xAB\x8Ah\xF3\x11\xF1\xDC\xCA\xB7\x03\xBA\x94#\xAE\xD2\x9C\xD3\x97\xAEc\xF8c\xA2dipfsX\"\x12 \x95\x81\xBE\x8B\xCE\x8E\x84\xA5\xA0\x01\xCD/\x96\xB32\x8B\xD7\x06\xC8)as7\xA0\xB5\xC2\xD5\n(\x10=\xE4dsolcC\0\x08\x13\x003"; + /// The deployed bytecode of the contract. + pub static SUBNETACTORPAUSEFACET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SubnetActorPauseFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for SubnetActorPauseFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SubnetActorPauseFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SubnetActorPauseFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SubnetActorPauseFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(SubnetActorPauseFacet)) + .field(&self.address()) + .finish() + } + } + impl SubnetActorPauseFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SUBNETACTORPAUSEFACET_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SUBNETACTORPAUSEFACET_ABI.clone(), + SUBNETACTORPAUSEFACET_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `pause` (0x8456cb59) function + pub fn pause(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([132, 86, 203, 89], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `paused` (0x5c975abb) function + pub fn paused(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([92, 151, 90, 187], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `unpause` (0x3f4ba83a) function + pub fn unpause(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 75, 168, 58], ()) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Paused` event + pub fn paused_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PausedFilter> { + self.0.event() + } + ///Gets the contract's `Unpaused` event + pub fn unpaused_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UnpausedFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + SubnetActorPauseFacetEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for SubnetActorPauseFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `EnforcedPause` with signature `EnforcedPause()` and selector `0xd93c0665` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EnforcedPause", abi = "EnforcedPause()")] + pub struct EnforcedPause; + ///Custom Error type `ExpectedPause` with signature `ExpectedPause()` and selector `0x8dfc202b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ExpectedPause", abi = "ExpectedPause()")] + pub struct ExpectedPause; + ///Custom Error type `NotOwner` with signature `NotOwner()` and selector `0x30cd7471` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotOwner", abi = "NotOwner()")] + pub struct NotOwner; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorPauseFacetErrors { + EnforcedPause(EnforcedPause), + ExpectedPause(ExpectedPause), + NotOwner(NotOwner), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorPauseFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::EnforcedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ExpectedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotOwner(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorPauseFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::EnforcedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExpectedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotOwner(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for SubnetActorPauseFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for SubnetActorPauseFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::EnforcedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::ExpectedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::NotOwner(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for SubnetActorPauseFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for SubnetActorPauseFacetErrors { + fn from(value: EnforcedPause) -> Self { + Self::EnforcedPause(value) + } + } + impl ::core::convert::From for SubnetActorPauseFacetErrors { + fn from(value: ExpectedPause) -> Self { + Self::ExpectedPause(value) + } + } + impl ::core::convert::From for SubnetActorPauseFacetErrors { + fn from(value: NotOwner) -> Self { + Self::NotOwner(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Paused", abi = "Paused(address)")] + pub struct PausedFilter { + pub account: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Unpaused", abi = "Unpaused(address)")] + pub struct UnpausedFilter { + pub account: ::ethers::core::types::Address, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorPauseFacetEvents { + PausedFilter(PausedFilter), + UnpausedFilter(UnpausedFilter), + } + impl ::ethers::contract::EthLogDecode for SubnetActorPauseFacetEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = PausedFilter::decode_log(log) { + return Ok(SubnetActorPauseFacetEvents::PausedFilter(decoded)); + } + if let Ok(decoded) = UnpausedFilter::decode_log(log) { + return Ok(SubnetActorPauseFacetEvents::UnpausedFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for SubnetActorPauseFacetEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::PausedFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UnpausedFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SubnetActorPauseFacetEvents { + fn from(value: PausedFilter) -> Self { + Self::PausedFilter(value) + } + } + impl ::core::convert::From for SubnetActorPauseFacetEvents { + fn from(value: UnpausedFilter) -> Self { + Self::UnpausedFilter(value) + } + } + ///Container type for all input parameters for the `pause` function with signature `pause()` and selector `0x8456cb59` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pause", abi = "pause()")] + pub struct PauseCall; + ///Container type for all input parameters for the `paused` function with signature `paused()` and selector `0x5c975abb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "paused", abi = "paused()")] + pub struct PausedCall; + ///Container type for all input parameters for the `unpause` function with signature `unpause()` and selector `0x3f4ba83a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "unpause", abi = "unpause()")] + pub struct UnpauseCall; + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorPauseFacetCalls { + Pause(PauseCall), + Paused(PausedCall), + Unpause(UnpauseCall), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorPauseFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Pause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Paused(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Unpause(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorPauseFacetCalls { + fn encode(self) -> Vec { + match self { + Self::Pause(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Paused(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Unpause(element) => ::ethers::core::abi::AbiEncode::encode(element), + } + } + } + impl ::core::fmt::Display for SubnetActorPauseFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Pause(element) => ::core::fmt::Display::fmt(element, f), + Self::Paused(element) => ::core::fmt::Display::fmt(element, f), + Self::Unpause(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SubnetActorPauseFacetCalls { + fn from(value: PauseCall) -> Self { + Self::Pause(value) + } + } + impl ::core::convert::From for SubnetActorPauseFacetCalls { + fn from(value: PausedCall) -> Self { + Self::Paused(value) + } + } + impl ::core::convert::From for SubnetActorPauseFacetCalls { + fn from(value: UnpauseCall) -> Self { + Self::Unpause(value) + } + } + ///Container type for all return fields from the `paused` function with signature `paused()` and selector `0x5c975abb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PausedReturn(pub bool); +} diff --git a/contracts/binding/src/subnet_actor_reward_facet.rs b/contracts/binding/src/subnet_actor_reward_facet.rs new file mode 100644 index 000000000..0a3cb9b12 --- /dev/null +++ b/contracts/binding/src/subnet_actor_reward_facet.rs @@ -0,0 +1,815 @@ +pub use subnet_actor_reward_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod subnet_actor_reward_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("claim"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("claim"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("claimRewardForRelayer"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "claimRewardForRelayer", + ), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("distributeRewardToRelayers"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "distributeRewardToRelayers", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("height"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("reward"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("kind"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("enum QuorumObjKind"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, + }, + ], + ), + ]), + events: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("Paused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Paused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("Unpaused"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Unpaused"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ]), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressInsufficientBalance"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressInsufficientBalance", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("EnforcedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("EnforcedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ExpectedPause"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ExpectedPause"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("MethodNotAllowed"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("MethodNotAllowed"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("reason"), + kind: ::ethers::core::abi::ethabi::ParamType::String, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("string"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NoCollateralToWithdraw"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NoCollateralToWithdraw", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotGateway"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotGateway"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ReentrancyError"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ReentrancyError"), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static SUBNETACTORREWARDFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + pub struct SubnetActorRewardFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for SubnetActorRewardFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SubnetActorRewardFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SubnetActorRewardFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SubnetActorRewardFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(SubnetActorRewardFacet)) + .field(&self.address()) + .finish() + } + } + impl SubnetActorRewardFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SUBNETACTORREWARDFACET_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `claim` (0x4e71d92d) function + pub fn claim(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([78, 113, 217, 45], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `claimRewardForRelayer` (0xed7c4da1) function + pub fn claim_reward_for_relayer( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([237, 124, 77, 161], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `distributeRewardToRelayers` (0x4c860af6) function + pub fn distribute_reward_to_relayers( + &self, + height: ::ethers::core::types::U256, + reward: ::ethers::core::types::U256, + kind: u8, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([76, 134, 10, 246], (height, reward, kind)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Paused` event + pub fn paused_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PausedFilter> { + self.0.event() + } + ///Gets the contract's `Unpaused` event + pub fn unpaused_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UnpausedFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + SubnetActorRewardFacetEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for SubnetActorRewardFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressInsufficientBalance` with signature `AddressInsufficientBalance(address)` and selector `0xcd786059` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "AddressInsufficientBalance", + abi = "AddressInsufficientBalance(address)" + )] + pub struct AddressInsufficientBalance { + pub account: ::ethers::core::types::Address, + } + ///Custom Error type `EnforcedPause` with signature `EnforcedPause()` and selector `0xd93c0665` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EnforcedPause", abi = "EnforcedPause()")] + pub struct EnforcedPause; + ///Custom Error type `ExpectedPause` with signature `ExpectedPause()` and selector `0x8dfc202b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ExpectedPause", abi = "ExpectedPause()")] + pub struct ExpectedPause; + ///Custom Error type `FailedInnerCall` with signature `FailedInnerCall()` and selector `0x1425ea42` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedInnerCall", abi = "FailedInnerCall()")] + pub struct FailedInnerCall; + ///Custom Error type `MethodNotAllowed` with signature `MethodNotAllowed(string)` and selector `0x015538b1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "MethodNotAllowed", abi = "MethodNotAllowed(string)")] + pub struct MethodNotAllowed { + pub reason: ::std::string::String, + } + ///Custom Error type `NoCollateralToWithdraw` with signature `NoCollateralToWithdraw()` and selector `0x64b0557f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NoCollateralToWithdraw", abi = "NoCollateralToWithdraw()")] + pub struct NoCollateralToWithdraw; + ///Custom Error type `NotGateway` with signature `NotGateway()` and selector `0xe7e601db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotGateway", abi = "NotGateway()")] + pub struct NotGateway; + ///Custom Error type `ReentrancyError` with signature `ReentrancyError()` and selector `0x29f745a7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ReentrancyError", abi = "ReentrancyError()")] + pub struct ReentrancyError; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorRewardFacetErrors { + AddressInsufficientBalance(AddressInsufficientBalance), + EnforcedPause(EnforcedPause), + ExpectedPause(ExpectedPause), + FailedInnerCall(FailedInnerCall), + MethodNotAllowed(MethodNotAllowed), + NoCollateralToWithdraw(NoCollateralToWithdraw), + NotGateway(NotGateway), + ReentrancyError(ReentrancyError), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorRewardFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressInsufficientBalance(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::EnforcedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ExpectedPause(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedInnerCall(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::MethodNotAllowed(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NoCollateralToWithdraw(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotGateway(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ReentrancyError(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorRewardFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressInsufficientBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EnforcedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExpectedPause(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedInnerCall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::MethodNotAllowed(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NoCollateralToWithdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotGateway(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ReentrancyError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for SubnetActorRewardFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for SubnetActorRewardFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressInsufficientBalance(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::EnforcedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::ExpectedPause(element) => ::core::fmt::Display::fmt(element, f), + Self::FailedInnerCall(element) => ::core::fmt::Display::fmt(element, f), + Self::MethodNotAllowed(element) => ::core::fmt::Display::fmt(element, f), + Self::NoCollateralToWithdraw(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotGateway(element) => ::core::fmt::Display::fmt(element, f), + Self::ReentrancyError(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for SubnetActorRewardFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From + for SubnetActorRewardFacetErrors { + fn from(value: AddressInsufficientBalance) -> Self { + Self::AddressInsufficientBalance(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: EnforcedPause) -> Self { + Self::EnforcedPause(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: ExpectedPause) -> Self { + Self::ExpectedPause(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: FailedInnerCall) -> Self { + Self::FailedInnerCall(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: MethodNotAllowed) -> Self { + Self::MethodNotAllowed(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: NoCollateralToWithdraw) -> Self { + Self::NoCollateralToWithdraw(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: NotGateway) -> Self { + Self::NotGateway(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetErrors { + fn from(value: ReentrancyError) -> Self { + Self::ReentrancyError(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Paused", abi = "Paused(address)")] + pub struct PausedFilter { + pub account: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Unpaused", abi = "Unpaused(address)")] + pub struct UnpausedFilter { + pub account: ::ethers::core::types::Address, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorRewardFacetEvents { + PausedFilter(PausedFilter), + UnpausedFilter(UnpausedFilter), + } + impl ::ethers::contract::EthLogDecode for SubnetActorRewardFacetEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = PausedFilter::decode_log(log) { + return Ok(SubnetActorRewardFacetEvents::PausedFilter(decoded)); + } + if let Ok(decoded) = UnpausedFilter::decode_log(log) { + return Ok(SubnetActorRewardFacetEvents::UnpausedFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for SubnetActorRewardFacetEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::PausedFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UnpausedFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SubnetActorRewardFacetEvents { + fn from(value: PausedFilter) -> Self { + Self::PausedFilter(value) + } + } + impl ::core::convert::From for SubnetActorRewardFacetEvents { + fn from(value: UnpausedFilter) -> Self { + Self::UnpausedFilter(value) + } + } + ///Container type for all input parameters for the `claim` function with signature `claim()` and selector `0x4e71d92d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "claim", abi = "claim()")] + pub struct ClaimCall; + ///Container type for all input parameters for the `claimRewardForRelayer` function with signature `claimRewardForRelayer()` and selector `0xed7c4da1` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "claimRewardForRelayer", abi = "claimRewardForRelayer()")] + pub struct ClaimRewardForRelayerCall; + ///Container type for all input parameters for the `distributeRewardToRelayers` function with signature `distributeRewardToRelayers(uint256,uint256,uint8)` and selector `0x4c860af6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "distributeRewardToRelayers", + abi = "distributeRewardToRelayers(uint256,uint256,uint8)" + )] + pub struct DistributeRewardToRelayersCall { + pub height: ::ethers::core::types::U256, + pub reward: ::ethers::core::types::U256, + pub kind: u8, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SubnetActorRewardFacetCalls { + Claim(ClaimCall), + ClaimRewardForRelayer(ClaimRewardForRelayerCall), + DistributeRewardToRelayers(DistributeRewardToRelayersCall), + } + impl ::ethers::core::abi::AbiDecode for SubnetActorRewardFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::Claim(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ClaimRewardForRelayer(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::DistributeRewardToRelayers(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SubnetActorRewardFacetCalls { + fn encode(self) -> Vec { + match self { + Self::Claim(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ClaimRewardForRelayer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DistributeRewardToRelayers(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for SubnetActorRewardFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Claim(element) => ::core::fmt::Display::fmt(element, f), + Self::ClaimRewardForRelayer(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DistributeRewardToRelayers(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for SubnetActorRewardFacetCalls { + fn from(value: ClaimCall) -> Self { + Self::Claim(value) + } + } + impl ::core::convert::From + for SubnetActorRewardFacetCalls { + fn from(value: ClaimRewardForRelayerCall) -> Self { + Self::ClaimRewardForRelayer(value) + } + } + impl ::core::convert::From + for SubnetActorRewardFacetCalls { + fn from(value: DistributeRewardToRelayersCall) -> Self { + Self::DistributeRewardToRelayers(value) + } + } +} diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index f24c5be46..d2d4f07f5 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -1,14 +1,12 @@ -import { HardhatUserConfig, task } from 'hardhat/config' -import '@typechain/hardhat' -import 'hardhat-storage-layout-changes' - import '@nomicfoundation/hardhat-foundry' import '@nomiclabs/hardhat-ethers' -import 'hardhat-deploy' -import 'hardhat-contract-sizer' - +import '@typechain/hardhat' import dotenv from 'dotenv' import fs from 'fs' +import 'hardhat-contract-sizer' +import 'hardhat-deploy' +import 'hardhat-storage-layout-changes' +import { HardhatUserConfig, task } from 'hardhat/config' import { HardhatRuntimeEnvironment } from 'hardhat/types' dotenv.config() @@ -193,27 +191,6 @@ task( }, ) -task( - 'deploy-subnet', - 'Builds and deploys the SubnetActor contract on the selected network', - async (args, hre: HardhatRuntimeEnvironment) => { - const network = hre.network.name - - const deployments = await getDeployments(network) - const { deploy } = await lazyImport('./scripts/deploy-subnet') - - // remove unused lib - delete deployments.libs['StorableMsgHelper'] - - const subnetDeployment = await deploy( - deployments.Gateway, - deployments.libs, - ) - - await saveDeployments(network, subnetDeployment) - }, -) - task( 'deploy-gw-diamond-and-facets', 'Builds and deploys Gateway Actor diamond and its facets', diff --git a/contracts/ops/deploy-subnet-registry.sh b/contracts/ops/deploy-subnet-registry.sh new file mode 100755 index 000000000..995586c6f --- /dev/null +++ b/contracts/ops/deploy-subnet-registry.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Upgrades IPC Gateway Diamond Facets on an EVM-compatible subnet using hardhat +set -e + +if [ $# -ne 1 ] +then + echo "Expected a single argument with the name of the network to deploy (localnet, calibrationnet, mainnet)" + exit 1 +fi + +NETWORK=$1 + +if [ "$NETWORK" = "auto" ]; then + echo "[*] Automatically getting chainID for network" + source ops/chain-id.sh +fi + + +npx hardhat deploy-subnet-registry --network ${NETWORK} diff --git a/contracts/ops/deploy-subnet.sh b/contracts/ops/deploy-subnet.sh new file mode 100755 index 000000000..6dce9915b --- /dev/null +++ b/contracts/ops/deploy-subnet.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# Upgrades IPC Gateway Diamond Facets on an EVM-compatible subnet using hardhat +set -e + +if [ $# -ne 1 ] +then + echo "Expected a single argument with the name of the network to deploy (localnet, calibrationnet, mainnet)" + exit 1 +fi + +NETWORK=$1 + +if [ "$NETWORK" = "auto" ]; then + echo "[*] Automatically getting chainID for network" + source ops/chain-id.sh +fi + + +npx hardhat deploy-sa-diamond-and-facets --network ${NETWORK} + diff --git a/contracts/scripts/deploy-registry.template.ts b/contracts/scripts/deploy-registry.template.ts index 8d9ac6811..c4b14f164 100644 --- a/contracts/scripts/deploy-registry.template.ts +++ b/contracts/scripts/deploy-registry.template.ts @@ -1,5 +1,5 @@ -import { ethers } from 'hardhat' import { deployContractWithDeployer, getTransactionFees } from './util' +import { ethers } from 'hardhat' const { getSelectors, FacetCutAction } = require('./js/diamond.js') @@ -31,14 +31,36 @@ export async function deploy() { const managerFacet = await deployContractWithDeployer( deployer, 'SubnetActorManagerFacet', - { - LibStaking: LIBMAP['LibStaking'], - }, + {}, txArgs, ) const managerSelectors = getSelectors(managerFacet) // console.log("manager address:", managerFacet.address); + const pauserFacet = await deployContractWithDeployer( + deployer, + 'SubnetActorPauseFacet', + {}, + txArgs, + ) + const pauserSelectors = getSelectors(pauserFacet) + + const rewarderFacet = await deployContractWithDeployer( + deployer, + 'SubnetActorRewardFacet', + { LibStaking: LIBMAP['LibStaking'] }, + txArgs, + ) + const rewarderSelectors = getSelectors(rewarderFacet) + + const checkpointerFacet = await deployContractWithDeployer( + deployer, + 'SubnetActorCheckpointingFacet', + {}, + txArgs, + ) + const checkpointerSelectors = getSelectors(checkpointerFacet) + //deploy subnet registry diamond const registry = await ethers.getContractFactory('SubnetRegistryDiamond', { signer: deployer, @@ -48,8 +70,14 @@ export async function deploy() { gateway: gatewayAddress, getterFacet: getterFacet.address, managerFacet: managerFacet.address, + rewarderFacet: rewarderFacet.address, + pauserFacet: pauserFacet.address, + checkpointerFacet: checkpointerFacet.address, subnetGetterSelectors: getterSelectors, subnetManagerSelectors: managerSelectors, + checkpointerSelectors: checkpointerSelectors, + pauserSelectors: pauserSelectors, + rewarderSelectors: rewarderSelectors, } const facetCuts = [] //TODO diff --git a/contracts/scripts/deploy-sa-diamond.ts b/contracts/scripts/deploy-sa-diamond.ts index 7a799fda3..0cc5fa439 100644 --- a/contracts/scripts/deploy-sa-diamond.ts +++ b/contracts/scripts/deploy-sa-diamond.ts @@ -1,5 +1,5 @@ -import hre, { ethers } from 'hardhat' import { deployContractWithDeployer, getTransactionFees } from './util' +import hre, { ethers } from 'hardhat' const { getSelectors, FacetCutAction } = require('./js/diamond.js') @@ -26,15 +26,22 @@ async function deploySubnetActorDiamond( SubnetIDHelper: libs['SubnetIDHelper'], } - const managerFacetLibs: Libraries = { - LibStaking: libs['LibStaking'], - } + const managerFacetLibs: Libraries = {} + + const rewarderFacetLibs: Libraries = {} + + const pauserFacetLibs: Libraries = {} + + const checkpointerFacetLibs: Libraries = {} const facets = [ { name: 'DiamondLoupeFacet', libs: {} }, { name: 'DiamondCutFacet', libs: {} }, { name: 'SubnetActorGetterFacet', libs: getterFacetLibs }, { name: 'SubnetActorManagerFacet', libs: managerFacetLibs }, + { name: 'SubnetActorRewardFacet', libs: rewarderFacetLibs }, + { name: 'SubnetActorCheckpointingFacet', libs: checkpointerFacetLibs }, + { name: 'SubnetActorPauseFacet', libs: pauserFacetLibs }, ] // The `facetCuts` variable is the FacetCut[] that contains the functions to add during diamond deployment const facetCuts = [] diff --git a/contracts/scripts/deploy-subnet.ts b/contracts/scripts/deploy-subnet.ts deleted file mode 100644 index fd5458df5..000000000 --- a/contracts/scripts/deploy-subnet.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* global ethers */ -/* eslint prefer-const: "off" */ - -import { hre, ethers } from 'hardhat' -import { deployContractWithDeployer, getTransactionFees } from './util' - -export async function deploy( - gatewayAddress: string, - libs: { [key in string]: string }, -) { - if (!gatewayAddress) throw new Error(`Gateway is missing`) - if (!libs || Object.keys(libs).length === 0) - throw new Error(`Libraries are missing`) - - await hre.run('compile') - - const [deployer] = await ethers.getSigners() - const balance = await ethers.provider.getBalance(deployer.address) - console.log( - 'Deploying subnet with the account:', - deployer.address, - ' balance:', - ethers.utils.formatEther(balance), - ) - - const txArgs = await getTransactionFees() - - const gateway = await ethers.getContractAt( - 'Gateway', - gatewayAddress, - deployer, - ) - const parentId = await gateway.getNetworkName() - - console.log(parentId) - - const constructorParams = { - parentId, - name: ethers.utils.formatBytes32String('Subnet'), - ipcGatewayAddr: gatewayAddress, - consensus: 0, - minActivationCollateral: ethers.utils.parseEther('1'), - minValidators: 3, - bottomUpCheckPeriod: 10, - topDownCheckPeriod: 10, - majorityPercentage: 66, - genesis: 0, - permissioned: false, - } - - const { address: subnetAddress } = await deployContractWithDeployer( - deployer, - 'SubnetActor', - libs, - constructorParams, - txArgs, - ) - - return { - SubnetActor: subnetAddress, - } -} diff --git a/contracts/scripts/python/build_selector_library.py b/contracts/scripts/python/build_selector_library.py index 04a22b2e6..2cb4785db 100644 --- a/contracts/scripts/python/build_selector_library.py +++ b/contracts/scripts/python/build_selector_library.py @@ -81,6 +81,9 @@ def main(): 'src/gateway/router/XnetMessagingFacet.sol', 'src/subnet/SubnetActorGetterFacet.sol', 'src/subnet/SubnetActorManagerFacet.sol', + 'src/subnet/SubnetActorPauseFacet.sol', + 'src/subnet/SubnetActorRewardFacet.sol', + 'src/subnet/SubnetActorCheckpointingFacet.sol', 'src/subnetregistry/RegisterSubnetFacet.sol', 'src/subnetregistry/SubnetGetterFacet.sol', 'test/helpers/ERC20PresetFixedSupply.sol', @@ -88,7 +91,7 @@ def main(): 'test/helpers/NumberContractFacetSeven.sol', 'test/helpers/SelectorLibrary.sol', 'test/helpers/TestUtils.sol', - 'test/mocks/SubnetActorManagerFacetMock.sol', + 'test/mocks/SubnetActorMock.sol', ] for filepath in filepaths_to_target: diff --git a/contracts/scripts/util.ts b/contracts/scripts/util.ts index 94d02771c..ea03d797a 100644 --- a/contracts/scripts/util.ts +++ b/contracts/scripts/util.ts @@ -1,8 +1,9 @@ import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' import { providers, Wallet, ContractFactory, Contract } from 'ethers' -import { Contract, ethers } from 'hardhat' import ganache from 'ganache' +import { ethers } from 'hardhat' import * as linker from 'solc/linker' + const { getSelectors, FacetCutAction } = require('./js/diamond.js') const fs = require('fs') diff --git a/contracts/test/integration/GatewayL2Diamond.t.sol b/contracts/test/integration/GatewayL2Diamond.t.sol deleted file mode 100644 index 3d09403f0..000000000 --- a/contracts/test/integration/GatewayL2Diamond.t.sol +++ /dev/null @@ -1,180 +0,0 @@ -// SPDX-License-Identifier: MIT OR Apache-2.0 -pragma solidity 0.8.19; - -import "forge-std/Test.sol"; -import "../../src/errors/IPCErrors.sol"; -import {EMPTY_BYTES, METHOD_SEND} from "../../src/constants/Constants.sol"; -import {CrossMsg, StorableMsg} from "../../src/structs/CrossNet.sol"; -import {FvmAddress} from "../../src/structs/FvmAddress.sol"; -import {SubnetID, Subnet, IPCAddress, Validator} from "../../src/structs/Subnet.sol"; -import {SubnetIDHelper} from "../../src/lib/SubnetIDHelper.sol"; -import {FvmAddressHelper} from "../../src/lib/FvmAddressHelper.sol"; -import {CrossMsgHelper} from "../../src/lib/CrossMsgHelper.sol"; -import {GatewayDiamond, FEATURE_MULTILEVEL_CROSSMSG} from "../../src/GatewayDiamond.sol"; -import {GatewayGetterFacet} from "../../src/gateway/GatewayGetterFacet.sol"; -import {GatewayManagerFacet} from "../../src/gateway/GatewayManagerFacet.sol"; -import {XnetMessagingFacet} from "../../src/gateway/router/XnetMessagingFacet.sol"; -import {DiamondCutFacet} from "../../src/diamond/DiamondCutFacet.sol"; -import {GatewayMessengerFacet} from "../../src/gateway/GatewayMessengerFacet.sol"; -import {DiamondLoupeFacet} from "../../src/diamond/DiamondLoupeFacet.sol"; -import {DiamondCutFacet} from "../../src/diamond/DiamondCutFacet.sol"; -import {IntegrationTestBase} from "../IntegrationTestBase.sol"; -import {FilAddress} from "fevmate/utils/FilAddress.sol"; - -contract GatewayL2ActorDiamondTest is Test, IntegrationTestBase { - using SubnetIDHelper for SubnetID; - using CrossMsgHelper for CrossMsg; - - function setUp() public override { - address[] memory path2 = new address[](2); - path2[0] = CHILD_NETWORK_ADDRESS; - path2[1] = CHILD_NETWORK_ADDRESS_2; - - GatewayDiamond.ConstructorParams memory gwConstructorParams = defaultGatewayParams(); - gatewayDiamond = createGatewayDiamond(gwConstructorParams); - - gwGetter = GatewayGetterFacet(address(gatewayDiamond)); - gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); - gwMessenger = GatewayMessengerFacet(address(gatewayDiamond)); - gwLouper = DiamondLoupeFacet(address(gatewayDiamond)); - gwCutter = DiamondCutFacet(address(gatewayDiamond)); - } - - function defaultGatewayParams() internal pure override returns (GatewayDiamond.ConstructorParams memory) { - address[] memory path2 = new address[](2); - path2[0] = CHILD_NETWORK_ADDRESS; - path2[1] = CHILD_NETWORK_ADDRESS_2; - - GatewayDiamond.ConstructorParams memory params = GatewayDiamond.ConstructorParams({ - networkName: SubnetID({root: ROOTNET_CHAINID, route: path2}), - bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, - msgFee: DEFAULT_CROSS_MSG_FEE, - majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, - genesisValidators: new Validator[](0), - activeValidatorsLimit: DEFAULT_ACTIVE_VALIDATORS_LIMIT - }); - - return params; - } - - function testGatewayDiamond_CommitParentFinality_BigNumberOfMessages() public { - uint256 n = 2000; - FvmAddress[] memory validators = new FvmAddress[](1); - validators[0] = FvmAddressHelper.from(vm.addr(100)); - vm.deal(vm.addr(100), 1); - - uint256[] memory weights = new uint[](1); - weights[0] = 100; - - SubnetID memory id = gwGetter.getNetworkName(); - - CrossMsg[] memory topDownMsgs = new CrossMsg[](n); - for (uint64 i = 0; i < n; i++) { - topDownMsgs[i] = CrossMsg({ - message: StorableMsg({ - from: IPCAddress({subnetId: id, rawAddress: FvmAddressHelper.from(address(this))}), - to: IPCAddress({subnetId: id, rawAddress: FvmAddressHelper.from(address(this))}), - value: 0, - nonce: i, - method: this.callback.selector, - params: EMPTY_BYTES, - fee: DEFAULT_CROSS_MSG_FEE - }), - wrapped: false - }); - } - - vm.startPrank(FilAddress.SYSTEM_ACTOR); - - gwXnetMessagingFacet.applyCrossMessages(topDownMsgs); - require(gwGetter.getSubnetTopDownMsgsLength(id) == 0, "unexpected top-down message"); - (bool ok, uint64 tdn) = gwGetter.getAppliedTopDownNonce(id); - require(!ok && tdn == 0, "unexpected nonce"); - - vm.stopPrank(); - } - - function testGatewayDiamond_Propagate_Works_WithFeeRemainderNew() external { - if (!FEATURE_MULTILEVEL_CROSSMSG) { - // skip - return; - } - (, address[] memory validators) = setupValidators(); - address caller = validators[0]; - - bytes32 postboxId = setupWhiteListMethod(caller); - - vm.deal(caller, 1 ether); - - vm.expectCall(caller, 1 ether - gwGetter.crossMsgFee(), new bytes(0), 1); - vm.prank(caller); - gwMessenger.propagate{value: 1 ether}(postboxId); - - require(caller.balance == 1 ether - gwGetter.crossMsgFee(), "unexpected balance"); - } - - function testGatewayDiamond_Propagate_Works_NoFeeReminder() external { - if (!FEATURE_MULTILEVEL_CROSSMSG) { - // skip - return; - } - (, address[] memory validators) = setupValidators(); - address caller = validators[0]; - - uint256 fee = gwGetter.crossMsgFee(); - - bytes32 postboxId = setupWhiteListMethod(caller); - - vm.deal(caller, fee); - - vm.prank(caller); - vm.expectCall(caller, 0, EMPTY_BYTES, 0); - gwMessenger.propagate{value: fee}(postboxId); - require(caller.balance == 0, "unexpected balance"); - } - - function testGatewayDiamond_Propagate_Fails_NotEnoughFee() public { - if (!FEATURE_MULTILEVEL_CROSSMSG) { - // skip - return; - } - address caller = vm.addr(100); - vm.deal(caller, 1 ether); - - vm.expectRevert(NotEnoughFee.selector); - gwMessenger.propagate(bytes32("")); - } - - function setupWhiteListMethod(address caller) internal returns (bytes32) { - registerSubnet(DEFAULT_COLLATERAL_AMOUNT, address(this)); - - CrossMsg memory crossMsg = CrossMsg({ - message: StorableMsg({ - from: IPCAddress({ - subnetId: gwGetter.getNetworkName().createSubnetId(caller), - rawAddress: FvmAddressHelper.from(caller) - }), - to: IPCAddress({ - subnetId: gwGetter.getNetworkName().createSubnetId(address(this)), - rawAddress: FvmAddressHelper.from(address(this)) - }), - value: DEFAULT_CROSS_MSG_FEE + 1, - nonce: 0, - method: METHOD_SEND, - params: new bytes(0), - fee: DEFAULT_CROSS_MSG_FEE - }), - wrapped: false - }); - CrossMsg[] memory msgs = new CrossMsg[](1); - msgs[0] = crossMsg; - - vm.prank(FilAddress.SYSTEM_ACTOR); - gwXnetMessagingFacet.applyCrossMessages(msgs); - - return crossMsg.toHash(); - } - - function callback() public view {} -} diff --git a/contracts/test/mocks/SubnetActorManagerFacetMock.sol b/contracts/test/mocks/SubnetActorManagerFacetMock.sol deleted file mode 100644 index 70685b49b..000000000 --- a/contracts/test/mocks/SubnetActorManagerFacetMock.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT OR Apache-2.0 -pragma solidity 0.8.19; - -import {SubnetActorManagerFacet} from "../../src/subnet/SubnetActorManagerFacet.sol"; -import {LibStaking} from "../../src/lib/LibStaking.sol"; - -contract SubnetActorManagerFacetMock is SubnetActorManagerFacet { - function confirmChange(uint64 _configurationNumber) external { - LibStaking.confirmChange(_configurationNumber); - } - - function confirmNextChange() external { - (uint64 nextConfigNum, ) = LibStaking.getConfigurationNumbers(); - LibStaking.confirmChange(nextConfigNum - 1); - } -}