{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203eb8e60ea9609dc49e3a27687741f3ce3761255971bef31cc2958e114958743764736f6c63430008180033","sourceMap":"3833:4790:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3833:4790:16;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203eb8e60ea9609dc49e3a27687741f3ce3761255971bef31cc2958e114958743764736f6c63430008180033","sourceMap":"3833:4790:16:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"Provides instance functions for obtaining information from an encoded FieldLayout.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"FieldLayoutInstance\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/FieldLayout.sol\":\"FieldLayoutInstance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/store/src/FieldLayout.sol":"FieldLayoutInstance"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/FieldLayout.sol","id":8362,"exportedSymbols":{"BYTE_TO_BITS":[21539],"FieldLayout":[7885],"FieldLayoutInstance":[8361],"FieldLayoutLib":[8033],"IFieldLayoutErrors":[8621],"LayoutOffsets":[21586],"MAX_DYNAMIC_FIELDS":[21551],"MAX_TOTAL_FIELDS":[21543],"WORD_LAST_INDEX":[21535],"WORD_SIZE":[21531]},"nodeType":"SourceUnit","src":"32:8592:16","nodes":[{"id":7874,"nodeType":"PragmaDirective","src":"32:25:16","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":7881,"nodeType":"ImportDirective","src":"59:128:16","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":8362,"sourceUnit":21587,"symbolAliases":[{"foreign":{"id":7875,"name":"WORD_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21531,"src":"68:9:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7876,"name":"WORD_LAST_INDEX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"79:15:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7877,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"96:12:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7878,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"110:16:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7879,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"128:18:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7880,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"148:13:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7883,"nodeType":"ImportDirective","src":"188:62:16","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol","file":"./IFieldLayoutErrors.sol","nameLocation":"-1:-1:-1","scope":8362,"sourceUnit":8622,"symbolAliases":[{"foreign":{"id":7882,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"197:18:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7885,"nodeType":"UserDefinedValueTypeDefinition","src":"741:28:16","nodes":[],"canonicalName":"FieldLayout","name":"FieldLayout","nameLocation":"746:11:16","underlyingType":{"id":7884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"761:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":7889,"nodeType":"UsingForDirective","src":"835:49:16","nodes":[],"global":true,"libraryName":{"id":7886,"name":"FieldLayoutInstance","nameLocations":["841:19:16"],"nodeType":"IdentifierPath","referencedDeclaration":8361,"src":"841:19:16"},"typeName":{"id":7888,"nodeType":"UserDefinedTypeName","pathNode":{"id":7887,"name":"FieldLayout","nameLocations":["865:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"865:11:16"},"referencedDeclaration":7885,"src":"865:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}},{"id":8033,"nodeType":"ContractDefinition","src":"1202:2434:16","nodes":[{"id":8032,"nodeType":"FunctionDefinition","src":"1679:1955:16","nodes":[],"body":{"id":8031,"nodeType":"Block","src":"1795:1839:16","nodes":[],"statements":[{"assignments":[7903],"declarations":[{"constant":false,"id":7903,"mutability":"mutable","name":"fieldLayout","nameLocation":"1809:11:16","nodeType":"VariableDeclaration","scope":8031,"src":"1801:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7902,"name":"uint256","nodeType":"ElementaryTypeName","src":"1801:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7904,"nodeType":"VariableDeclarationStatement","src":"1801:19:16"},{"assignments":[7906],"declarations":[{"constant":false,"id":7906,"mutability":"mutable","name":"totalLength","nameLocation":"1834:11:16","nodeType":"VariableDeclaration","scope":8031,"src":"1826:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7905,"name":"uint256","nodeType":"ElementaryTypeName","src":"1826:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7907,"nodeType":"VariableDeclarationStatement","src":"1826:19:16"},{"assignments":[7909],"declarations":[{"constant":false,"id":7909,"mutability":"mutable","name":"totalFields","nameLocation":"1859:11:16","nodeType":"VariableDeclaration","scope":8031,"src":"1851:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7908,"name":"uint256","nodeType":"ElementaryTypeName","src":"1851:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7914,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7910,"name":"_staticFieldLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"1873:19:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":7911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1893:6:16","memberName":"length","nodeType":"MemberAccess","src":"1873:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7912,"name":"numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7896,"src":"1902:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1873:45:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1851:67:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7915,"name":"totalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7909,"src":"1928:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7916,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"1942:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1928:30:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7925,"nodeType":"IfStatement","src":"1924:124:16","trueBody":{"errorCall":{"arguments":[{"id":7921,"name":"totalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7909,"src":"2018:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7922,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"2031:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7918,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"1973:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":7920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1992:25:16","memberName":"FieldLayout_TooManyFields","nodeType":"MemberAccess","referencedDeclaration":8588,"src":"1973:44:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":7923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1973:75:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7924,"nodeType":"RevertStatement","src":"1966:82:16"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7926,"name":"numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7896,"src":"2058:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7927,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"2077:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2058:37:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7936,"nodeType":"IfStatement","src":"2054:145:16","trueBody":{"errorCall":{"arguments":[{"id":7932,"name":"numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7896,"src":"2162:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7933,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"2180:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7929,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"2110:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":7931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2129:32:16","memberName":"FieldLayout_TooManyDynamicFields","nodeType":"MemberAccess","referencedDeclaration":8595,"src":"2110:51:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":7934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:89:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7935,"nodeType":"RevertStatement","src":"2103:96:16"}},{"body":{"id":7999,"nodeType":"Block","src":"2350:775:16","statements":[{"assignments":[7945],"declarations":[{"constant":false,"id":7945,"mutability":"mutable","name":"staticByteLength","nameLocation":"2366:16:16","nodeType":"VariableDeclaration","scope":7999,"src":"2358:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7944,"name":"uint256","nodeType":"ElementaryTypeName","src":"2358:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7949,"initialValue":{"baseExpression":{"id":7946,"name":"_staticFieldLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"2385:19:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":7948,"indexExpression":{"id":7947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"2405:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2385:22:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2358:49:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7950,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"2419:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2439:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2419:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7960,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"2530:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7961,"name":"WORD_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21531,"src":"2549:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2530:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7970,"nodeType":"IfStatement","src":"2526:123:16","trueBody":{"id":7969,"nodeType":"Block","src":"2560:89:16","statements":[{"errorCall":{"arguments":[{"id":7966,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"2638:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7963,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"2577:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":7965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2596:41:16","memberName":"FieldLayout_StaticLengthDoesNotFitInAWord","nodeType":"MemberAccess","referencedDeclaration":8620,"src":"2577:60:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":7967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2577:63:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7968,"nodeType":"RevertStatement","src":"2570:70:16"}]}},"id":7971,"nodeType":"IfStatement","src":"2415:234:16","trueBody":{"id":7959,"nodeType":"Block","src":"2442:78:16","statements":[{"errorCall":{"arguments":[{"id":7956,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"2509:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7953,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"2459:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2478:30:16","memberName":"FieldLayout_StaticLengthIsZero","nodeType":"MemberAccess","referencedDeclaration":8610,"src":"2459:49:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"RevertStatement","src":"2452:59:16"}]}},{"id":7998,"nodeType":"UncheckedBlock","src":"2657:462:16","statements":[{"expression":{"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7972,"name":"totalLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7906,"src":"2772:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":7973,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"2787:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7975,"nodeType":"ExpressionStatement","src":"2772:31:16"},{"expression":{"id":7993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7976,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"3005:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":7979,"name":"_staticFieldLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"3028:19:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":7981,"indexExpression":{"id":7980,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"3048:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3028:22:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3020:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7977,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:16","typeDescriptions":{}}},"id":7982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3020:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":7983,"name":"WORD_LAST_INDEX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"3057:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":7984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3075:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3057:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"3079:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3057:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3056:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7989,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"3084:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3056:40:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3055:42:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3020:77:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3005:92:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7994,"nodeType":"ExpressionStatement","src":"3005:92:16"},{"expression":{"id":7996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3107:3:16","subExpression":{"id":7995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"3107:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7997,"nodeType":"ExpressionStatement","src":"3107:3:16"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"2316:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7941,"name":"_staticFieldLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"2320:19:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":7942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:16","memberName":"length","nodeType":"MemberAccess","src":"2320:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2316:30:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8000,"initializationExpression":{"assignments":[7938],"declarations":[{"constant":false,"id":7938,"mutability":"mutable","name":"i","nameLocation":"2313:1:16","nodeType":"VariableDeclaration","scope":8000,"src":"2305:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7937,"name":"uint256","nodeType":"ElementaryTypeName","src":"2305:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7939,"nodeType":"VariableDeclarationStatement","src":"2305:9:16"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"2300:825:16"},{"expression":{"id":8006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8001,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"3366:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8002,"name":"totalLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7906,"src":"3381:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"expression":{"id":8003,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3396:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3410:12:16","memberName":"TOTAL_LENGTH","nodeType":"MemberAccess","referencedDeclaration":21561,"src":"3396:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3381:41:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3366:56:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8007,"nodeType":"ExpressionStatement","src":"3366:56:16"},{"expression":{"id":8014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8008,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"3428:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8009,"name":"_staticFieldLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"3443:19:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3463:6:16","memberName":"length","nodeType":"MemberAccess","src":"3443:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"expression":{"id":8011,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3473:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3487:17:16","memberName":"NUM_STATIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21572,"src":"3473:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3443:61:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3428:76:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8015,"nodeType":"ExpressionStatement","src":"3428:76:16"},{"expression":{"id":8021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8016,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"3510:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8017,"name":"numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7896,"src":"3525:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"expression":{"id":8018,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3545:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3559:18:16","memberName":"NUM_DYNAMIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21585,"src":"3545:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3525:52:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3510:67:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8022,"nodeType":"ExpressionStatement","src":"3510:67:16"},{"expression":{"arguments":[{"arguments":[{"id":8027,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"3616:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3608:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3608:7:16","typeDescriptions":{}}},"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3608:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8023,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"3591:11:16","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"type(FieldLayout)"}},"id":8024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3603:4:16","memberName":"wrap","nodeType":"MemberAccess","src":"3591:16:16","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (bytes32) pure returns (FieldLayout)"}},"id":8029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3591:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"functionReturnParameters":7901,"id":8030,"nodeType":"Return","src":"3584:45:16"}]},"documentation":{"id":7891,"nodeType":"StructuredDocumentation","src":"1229:447:16","text":" @notice Encodes the given field layout into a single bytes32.\n @dev Ensures various constraints on the length and size of the fields.\n Reverts if total fields, static field length, or static byte length exceed allowed limits.\n @param _staticFieldLengths An array of static field lengths.\n @param numDynamicFields The number of dynamic fields.\n @return A FieldLayout structure containing the encoded field layout."},"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"1688:6:16","parameters":{"id":7897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7894,"mutability":"mutable","name":"_staticFieldLengths","nameLocation":"1712:19:16","nodeType":"VariableDeclaration","scope":8032,"src":"1695:36:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"1695:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7893,"nodeType":"ArrayTypeName","src":"1695:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7896,"mutability":"mutable","name":"numDynamicFields","nameLocation":"1741:16:16","nodeType":"VariableDeclaration","scope":8032,"src":"1733:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1733:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1694:64:16"},"returnParameters":{"id":7901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8032,"src":"1782:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":7899,"nodeType":"UserDefinedTypeName","pathNode":{"id":7898,"name":"FieldLayout","nameLocations":["1782:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"1782:11:16"},"referencedDeclaration":7885,"src":"1782:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"1781:13:16"},"scope":8033,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"FieldLayoutLib","contractDependencies":[],"contractKind":"library","documentation":{"id":7890,"nodeType":"StructuredDocumentation","src":"886:315:16","text":" @title FieldLayoutLib\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @dev A library for handling field layout encoding into a single bytes32.\n It provides a function to encode static and dynamic fields and ensure\n various constraints regarding the length and size of the fields."},"fullyImplemented":true,"linearizedBaseContracts":[8033],"name":"FieldLayoutLib","nameLocation":"1210:14:16","scope":8362,"usedErrors":[],"usedEvents":[]},{"id":8361,"nodeType":"ContractDefinition","src":"3833:4790:16","nodes":[{"id":8067,"nodeType":"FunctionDefinition","src":"4162:217:16","nodes":[],"body":{"id":8066,"nodeType":"Block","src":"4251:128:16","nodes":[],"statements":[{"id":8065,"nodeType":"UncheckedBlock","src":"4257:118:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8049,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8038,"src":"4296:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4308:6:16","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":8360,"src":"4296:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4288:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8047,"name":"uint256","nodeType":"ElementaryTypeName","src":"4288:7:16","typeDescriptions":{}}},"id":8052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4288:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":8053,"name":"WORD_LAST_INDEX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"4323:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":8054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4341:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"4323:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8056,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8040,"src":"4345:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4323:27:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4322:29:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8059,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"4354:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4322:44:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8061,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4321:46:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4288:79:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4282:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8045,"name":"uint8","nodeType":"ElementaryTypeName","src":"4282:5:16","typeDescriptions":{}}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4282:86:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8044,"id":8064,"nodeType":"Return","src":"4275:93:16"}]}]},"documentation":{"id":8035,"nodeType":"StructuredDocumentation","src":"3865:294:16","text":" @notice Get the static byte length at the given index from the field layout.\n @param fieldLayout The FieldLayout to extract the byte length from.\n @param index The field index to get the static byte length from.\n @return The static byte length at the specified index."},"implemented":true,"kind":"function","modifiers":[],"name":"atIndex","nameLocation":"4171:7:16","parameters":{"id":8041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8038,"mutability":"mutable","name":"fieldLayout","nameLocation":"4191:11:16","nodeType":"VariableDeclaration","scope":8067,"src":"4179:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8037,"nodeType":"UserDefinedTypeName","pathNode":{"id":8036,"name":"FieldLayout","nameLocations":["4179:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"4179:11:16"},"referencedDeclaration":7885,"src":"4179:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"},{"constant":false,"id":8040,"mutability":"mutable","name":"index","nameLocation":"4212:5:16","nodeType":"VariableDeclaration","scope":8067,"src":"4204:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8039,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:40:16"},"returnParameters":{"id":8044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8067,"src":"4242:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8042,"name":"uint256","nodeType":"ElementaryTypeName","src":"4242:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4241:9:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8088,"nodeType":"FunctionDefinition","src":"4598:171:16","nodes":[],"body":{"id":8087,"nodeType":"Block","src":"4681:88:16","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8080,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"4721:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":8078,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"4702:11:16","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"type(FieldLayout)"}},"id":8079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4714:6:16","memberName":"unwrap","nodeType":"MemberAccess","src":"4702:18:16","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4694:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8076,"name":"uint256","nodeType":"ElementaryTypeName","src":"4694:7:16","typeDescriptions":{}}},"id":8082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4694:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8083,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"4738:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4752:12:16","memberName":"TOTAL_LENGTH","nodeType":"MemberAccess","referencedDeclaration":21561,"src":"4738:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4694:70:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8075,"id":8086,"nodeType":"Return","src":"4687:77:16"}]},"documentation":{"id":8068,"nodeType":"StructuredDocumentation","src":"4383:212:16","text":" @notice Get the total static byte length for the given field layout.\n @param fieldLayout The FieldLayout to extract the total static byte length from.\n @return The total static byte length."},"implemented":true,"kind":"function","modifiers":[],"name":"staticDataLength","nameLocation":"4607:16:16","parameters":{"id":8072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8071,"mutability":"mutable","name":"fieldLayout","nameLocation":"4636:11:16","nodeType":"VariableDeclaration","scope":8088,"src":"4624:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8070,"nodeType":"UserDefinedTypeName","pathNode":{"id":8069,"name":"FieldLayout","nameLocations":["4624:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"4624:11:16"},"referencedDeclaration":7885,"src":"4624:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"4623:25:16"},"returnParameters":{"id":8075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8088,"src":"4672:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8073,"name":"uint256","nodeType":"ElementaryTypeName","src":"4672:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4671:9:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8111,"nodeType":"FunctionDefinition","src":"4979:171:16","nodes":[],"body":{"id":8110,"nodeType":"Block","src":"5061:89:16","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8101,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8092,"src":"5088:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5100:6:16","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":8360,"src":"5088:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5088:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5080:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8099,"name":"uint256","nodeType":"ElementaryTypeName","src":"5080:7:16","typeDescriptions":{}}},"id":8104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5080:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8105,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"5113:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5127:17:16","memberName":"NUM_STATIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21572,"src":"5113:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5080:64:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5074:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8097,"name":"uint8","nodeType":"ElementaryTypeName","src":"5074:5:16","typeDescriptions":{}}},"id":8108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5074:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8096,"id":8109,"nodeType":"Return","src":"5067:78:16"}]},"documentation":{"id":8089,"nodeType":"StructuredDocumentation","src":"4773:203:16","text":" @notice Get the number of static fields for the field layout.\n @param fieldLayout The FieldLayout to extract the number of static fields from.\n @return The number of static fields."},"implemented":true,"kind":"function","modifiers":[],"name":"numStaticFields","nameLocation":"4988:15:16","parameters":{"id":8093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8092,"mutability":"mutable","name":"fieldLayout","nameLocation":"5016:11:16","nodeType":"VariableDeclaration","scope":8111,"src":"5004:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8091,"nodeType":"UserDefinedTypeName","pathNode":{"id":8090,"name":"FieldLayout","nameLocations":["5004:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"5004:11:16"},"referencedDeclaration":7885,"src":"5004:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"5003:25:16"},"returnParameters":{"id":8096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8111,"src":"5052:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8094,"name":"uint256","nodeType":"ElementaryTypeName","src":"5052:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5051:9:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8134,"nodeType":"FunctionDefinition","src":"5377:173:16","nodes":[],"body":{"id":8133,"nodeType":"Block","src":"5460:90:16","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8124,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"5487:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5499:6:16","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":8360,"src":"5487:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5479:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8122,"name":"uint256","nodeType":"ElementaryTypeName","src":"5479:7:16","typeDescriptions":{}}},"id":8127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5479:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8128,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"5512:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5526:18:16","memberName":"NUM_DYNAMIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21585,"src":"5512:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5479:65:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5473:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8120,"name":"uint8","nodeType":"ElementaryTypeName","src":"5473:5:16","typeDescriptions":{}}},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5473:72:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8119,"id":8132,"nodeType":"Return","src":"5466:79:16"}]},"documentation":{"id":8112,"nodeType":"StructuredDocumentation","src":"5154:220:16","text":" @notice Get the number of dynamic length fields for the field layout.\n @param fieldLayout The FieldLayout to extract the number of dynamic fields from.\n @return The number of dynamic length fields."},"implemented":true,"kind":"function","modifiers":[],"name":"numDynamicFields","nameLocation":"5386:16:16","parameters":{"id":8116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8115,"mutability":"mutable","name":"fieldLayout","nameLocation":"5415:11:16","nodeType":"VariableDeclaration","scope":8134,"src":"5403:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8114,"nodeType":"UserDefinedTypeName","pathNode":{"id":8113,"name":"FieldLayout","nameLocations":["5403:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"5403:11:16"},"referencedDeclaration":7885,"src":"5403:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"5402:25:16"},"returnParameters":{"id":8119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"5451:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8117,"name":"uint256","nodeType":"ElementaryTypeName","src":"5451:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5450:9:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8171,"nodeType":"FunctionDefinition","src":"5757:280:16","nodes":[],"body":{"id":8170,"nodeType":"Block","src":"5833:204:16","nodes":[],"statements":[{"id":8169,"nodeType":"UncheckedBlock","src":"5839:194:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8147,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8138,"src":"5886:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:6:16","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":8360,"src":"5886:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5886:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5878:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8145,"name":"uint256","nodeType":"ElementaryTypeName","src":"5878:7:16","typeDescriptions":{}}},"id":8150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5878:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8151,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"5911:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5925:17:16","memberName":"NUM_STATIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21572,"src":"5911:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5878:64:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5872:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8143,"name":"uint8","nodeType":"ElementaryTypeName","src":"5872:5:16","typeDescriptions":{}}},"id":8154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5872:71:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8159,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8138,"src":"5968:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5980:6:16","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":8360,"src":"5968:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5968:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8157,"name":"uint256","nodeType":"ElementaryTypeName","src":"5960:7:16","typeDescriptions":{}}},"id":8162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8163,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"5993:13:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":8164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6007:18:16","memberName":"NUM_DYNAMIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21585,"src":"5993:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5960:65:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5954:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8155,"name":"uint8","nodeType":"ElementaryTypeName","src":"5954:5:16","typeDescriptions":{}}},"id":8166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5954:72:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5872:154:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8142,"id":8168,"nodeType":"Return","src":"5857:169:16"}]}]},"documentation":{"id":8135,"nodeType":"StructuredDocumentation","src":"5554:200:16","text":" @notice Get the total number of fields for the field layout.\n @param fieldLayout The FieldLayout to extract the total number of fields from.\n @return The total number of fields."},"implemented":true,"kind":"function","modifiers":[],"name":"numFields","nameLocation":"5766:9:16","parameters":{"id":8139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8138,"mutability":"mutable","name":"fieldLayout","nameLocation":"5788:11:16","nodeType":"VariableDeclaration","scope":8171,"src":"5776:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8137,"nodeType":"UserDefinedTypeName","pathNode":{"id":8136,"name":"FieldLayout","nameLocations":["5776:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"5776:11:16"},"referencedDeclaration":7885,"src":"5776:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"5775:25:16"},"returnParameters":{"id":8142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8171,"src":"5824:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8140,"name":"uint256","nodeType":"ElementaryTypeName","src":"5824:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5823:9:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8191,"nodeType":"FunctionDefinition","src":"6217:134:16","nodes":[],"body":{"id":8190,"nodeType":"Block","src":"6288:63:16","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8182,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"6320:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":8180,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"6301:11:16","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"type(FieldLayout)"}},"id":8181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6313:6:16","memberName":"unwrap","nodeType":"MemberAccess","src":"6301:18:16","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6301:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6344:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6336:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6336:7:16","typeDescriptions":{}}},"id":8187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6336:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6301:45:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8179,"id":8189,"nodeType":"Return","src":"6294:52:16"}]},"documentation":{"id":8172,"nodeType":"StructuredDocumentation","src":"6041:173:16","text":" @notice Check if the field layout is empty.\n @param fieldLayout The FieldLayout to check.\n @return True if the field layout is empty, false otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"6226:7:16","parameters":{"id":8176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8175,"mutability":"mutable","name":"fieldLayout","nameLocation":"6246:11:16","nodeType":"VariableDeclaration","scope":8191,"src":"6234:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8174,"nodeType":"UserDefinedTypeName","pathNode":{"id":8173,"name":"FieldLayout","nameLocations":["6234:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"6234:11:16"},"referencedDeclaration":7885,"src":"6234:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"6233:25:16"},"returnParameters":{"id":8179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8191,"src":"6282:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8177,"name":"bool","nodeType":"ElementaryTypeName","src":"6282:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6281:6:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8345,"nodeType":"FunctionDefinition","src":"6618:1665:16","nodes":[],"body":{"id":8344,"nodeType":"Block","src":"6675:1608:16","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8198,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"6685:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6697:7:16","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":8191,"src":"6685:19:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (bool)"}},"id":8200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6685:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8207,"nodeType":"IfStatement","src":"6681:87:16","trueBody":{"id":8206,"nodeType":"Block","src":"6708:60:16","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8201,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"6723:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6742:17:16","memberName":"FieldLayout_Empty","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"6723:36:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6723:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8205,"nodeType":"RevertStatement","src":"6716:45:16"}]}},{"assignments":[8209],"declarations":[{"constant":false,"id":8209,"mutability":"mutable","name":"_numDynamicFields","nameLocation":"6782:17:16","nodeType":"VariableDeclaration","scope":8344,"src":"6774:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8208,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8213,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8210,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"6802:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6814:16:16","memberName":"numDynamicFields","nodeType":"MemberAccess","referencedDeclaration":8134,"src":"6802:28:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (uint256)"}},"id":8212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6802:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6774:58:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8214,"name":"_numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8209,"src":"6842:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8215,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"6862:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6842:38:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8225,"nodeType":"IfStatement","src":"6838:156:16","trueBody":{"id":8224,"nodeType":"Block","src":"6882:112:16","statements":[{"errorCall":{"arguments":[{"id":8220,"name":"_numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8209,"src":"6949:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8221,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"6968:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8217,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"6897:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6916:32:16","memberName":"FieldLayout_TooManyDynamicFields","nodeType":"MemberAccess","referencedDeclaration":8595,"src":"6897:51:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6897:90:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8223,"nodeType":"RevertStatement","src":"6890:97:16"}]}},{"assignments":[8227],"declarations":[{"constant":false,"id":8227,"mutability":"mutable","name":"_numStaticFields","nameLocation":"7008:16:16","nodeType":"VariableDeclaration","scope":8344,"src":"7000:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8226,"name":"uint256","nodeType":"ElementaryTypeName","src":"7000:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8228,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"7027:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7039:15:16","memberName":"numStaticFields","nodeType":"MemberAccess","referencedDeclaration":8111,"src":"7027:27:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (uint256)"}},"id":8230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7027:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7000:56:16"},{"assignments":[8233],"declarations":[{"constant":false,"id":8233,"mutability":"mutable","name":"_numTotalFields","nameLocation":"7070:15:16","nodeType":"VariableDeclaration","scope":8344,"src":"7062:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8232,"name":"uint256","nodeType":"ElementaryTypeName","src":"7062:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8237,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8234,"name":"_numStaticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8227,"src":"7088:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8235,"name":"_numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8209,"src":"7107:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7088:36:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7062:62:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8238,"name":"_numTotalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7134:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8239,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"7152:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7134:34:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8249,"nodeType":"IfStatement","src":"7130:141:16","trueBody":{"id":8248,"nodeType":"Block","src":"7170:101:16","statements":[{"errorCall":{"arguments":[{"id":8244,"name":"_numTotalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7230:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8245,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"7247:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8241,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"7185:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7204:25:16","memberName":"FieldLayout_TooManyFields","nodeType":"MemberAccess","referencedDeclaration":8588,"src":"7185:44:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":8246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:79:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8247,"nodeType":"RevertStatement","src":"7178:86:16"}]}},{"assignments":[8251],"declarations":[{"constant":false,"id":8251,"mutability":"mutable","name":"_staticDataLength","nameLocation":"7321:17:16","nodeType":"VariableDeclaration","scope":8344,"src":"7313:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8250,"name":"uint256","nodeType":"ElementaryTypeName","src":"7313:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8252,"nodeType":"VariableDeclarationStatement","src":"7313:25:16"},{"body":{"id":8296,"nodeType":"Block","src":"7384:389:16","statements":[{"assignments":[8260],"declarations":[{"constant":false,"id":8260,"mutability":"mutable","name":"staticByteLength","nameLocation":"7400:16:16","nodeType":"VariableDeclaration","scope":8296,"src":"7392:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8259,"name":"uint256","nodeType":"ElementaryTypeName","src":"7392:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8265,"initialValue":{"arguments":[{"id":8263,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"7439:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8261,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"7419:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7431:7:16","memberName":"atIndex","nodeType":"MemberAccess","referencedDeclaration":8067,"src":"7419:19:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$_t_uint256_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout,uint256) pure returns (uint256)"}},"id":8264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7419:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7392:49:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8266,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8260,"src":"7453:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7473:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7453:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8276,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8260,"src":"7564:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8277,"name":"WORD_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21531,"src":"7583:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7564:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8286,"nodeType":"IfStatement","src":"7560:123:16","trueBody":{"id":8285,"nodeType":"Block","src":"7594:89:16","statements":[{"errorCall":{"arguments":[{"id":8282,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"7672:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8279,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"7611:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7630:41:16","memberName":"FieldLayout_StaticLengthDoesNotFitInAWord","nodeType":"MemberAccess","referencedDeclaration":8620,"src":"7611:60:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7611:63:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8284,"nodeType":"RevertStatement","src":"7604:70:16"}]}},"id":8287,"nodeType":"IfStatement","src":"7449:234:16","trueBody":{"id":8275,"nodeType":"Block","src":"7476:78:16","statements":[{"errorCall":{"arguments":[{"id":8272,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"7543:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8269,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"7493:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7512:30:16","memberName":"FieldLayout_StaticLengthIsZero","nodeType":"MemberAccess","referencedDeclaration":8610,"src":"7493:49:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":8273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7493:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8274,"nodeType":"RevertStatement","src":"7486:59:16"}]}},{"expression":{"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8288,"name":"_staticDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8251,"src":"7690:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8289,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8260,"src":"7711:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7690:37:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8291,"nodeType":"ExpressionStatement","src":"7690:37:16"},{"id":8295,"nodeType":"UncheckedBlock","src":"7735:32:16","statements":[{"expression":{"id":8293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7755:3:16","subExpression":{"id":8292,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"7755:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8294,"nodeType":"ExpressionStatement","src":"7755:3:16"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8256,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8254,"src":"7360:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8257,"name":"_numStaticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8227,"src":"7364:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7360:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8297,"initializationExpression":{"assignments":[8254],"declarations":[{"constant":false,"id":8254,"mutability":"mutable","name":"i","nameLocation":"7357:1:16","nodeType":"VariableDeclaration","scope":8297,"src":"7349:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8253,"name":"uint256","nodeType":"ElementaryTypeName","src":"7349:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8255,"nodeType":"VariableDeclarationStatement","src":"7349:9:16"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"7344:429:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8298,"name":"_staticDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8251,"src":"7819:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8299,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"7840:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7852:16:16","memberName":"staticDataLength","nodeType":"MemberAccess","referencedDeclaration":8088,"src":"7840:28:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (uint256)"}},"id":8301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7840:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7819:51:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8313,"nodeType":"IfStatement","src":"7815:184:16","trueBody":{"id":8312,"nodeType":"Block","src":"7872:127:16","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8306,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"7942:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7954:16:16","memberName":"staticDataLength","nodeType":"MemberAccess","referencedDeclaration":8088,"src":"7942:28:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout) pure returns (uint256)"}},"id":8308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7942:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8309,"name":"_staticDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8251,"src":"7974:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8303,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"7887:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7906:35:16","memberName":"FieldLayout_InvalidStaticDataLength","nodeType":"MemberAccess","referencedDeclaration":8605,"src":"7887:54:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":8310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7887:105:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8311,"nodeType":"RevertStatement","src":"7880:112:16"}]}},{"body":{"id":8342,"nodeType":"Block","src":"8100:179:16","statements":[{"assignments":[8325],"declarations":[{"constant":false,"id":8325,"mutability":"mutable","name":"staticByteLength","nameLocation":"8116:16:16","nodeType":"VariableDeclaration","scope":8342,"src":"8108:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8324,"name":"uint256","nodeType":"ElementaryTypeName","src":"8108:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8330,"initialValue":{"arguments":[{"id":8328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"8155:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8326,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"8135:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:7:16","memberName":"atIndex","nodeType":"MemberAccess","referencedDeclaration":8067,"src":"8135:19:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_FieldLayout_$7885_$_t_uint256_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (FieldLayout,uint256) pure returns (uint256)"}},"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8135:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8108:49:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8331,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8325,"src":"8169:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8189:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8169:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8341,"nodeType":"IfStatement","src":"8165:108:16","trueBody":{"id":8340,"nodeType":"Block","src":"8192:81:16","statements":[{"errorCall":{"arguments":[{"id":8337,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"8262:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8334,"name":"IFieldLayoutErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"8209:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IFieldLayoutErrors_$8621_$","typeString":"type(contract IFieldLayoutErrors)"}},"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8228:33:16","memberName":"FieldLayout_StaticLengthIsNotZero","nodeType":"MemberAccess","referencedDeclaration":8615,"src":"8209:52:16","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":8338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8209:55:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8339,"nodeType":"RevertStatement","src":"8202:62:16"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"8073:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8319,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"8077:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8073:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8343,"initializationExpression":{"assignments":[8315],"declarations":[{"constant":false,"id":8315,"mutability":"mutable","name":"i","nameLocation":"8051:1:16","nodeType":"VariableDeclaration","scope":8343,"src":"8043:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8314,"name":"uint256","nodeType":"ElementaryTypeName","src":"8043:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8317,"initialValue":{"id":8316,"name":"_numStaticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8227,"src":"8055:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8043:28:16"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8095:3:16","subExpression":{"id":8321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"8095:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8323,"nodeType":"ExpressionStatement","src":"8095:3:16"},"nodeType":"ForStatement","src":"8038:241:16"}]},"documentation":{"id":8192,"nodeType":"StructuredDocumentation","src":"6355:260:16","text":" @notice Validate the field layout with various checks on the length and size of the fields.\n @dev Reverts if total fields, static field length, or static byte length exceed allowed limits.\n @param fieldLayout The FieldLayout to validate."},"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"6627:8:16","parameters":{"id":8196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8195,"mutability":"mutable","name":"fieldLayout","nameLocation":"6648:11:16","nodeType":"VariableDeclaration","scope":8345,"src":"6636:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8194,"nodeType":"UserDefinedTypeName","pathNode":{"id":8193,"name":"FieldLayout","nameLocations":["6636:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"6636:11:16"},"referencedDeclaration":7885,"src":"6636:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"6635:25:16"},"returnParameters":{"id":8197,"nodeType":"ParameterList","parameters":[],"src":"6675:0:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8360,"nodeType":"FunctionDefinition","src":"8499:122:16","nodes":[],"body":{"id":8359,"nodeType":"Block","src":"8572:49:16","nodes":[],"statements":[{"expression":{"arguments":[{"id":8356,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8349,"src":"8604:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":8354,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"8585:11:16","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"type(FieldLayout)"}},"id":8355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8597:6:16","memberName":"unwrap","nodeType":"MemberAccess","src":"8585:18:16","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$","typeString":"function (FieldLayout) pure returns (bytes32)"}},"id":8357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8353,"id":8358,"nodeType":"Return","src":"8578:38:16"}]},"documentation":{"id":8346,"nodeType":"StructuredDocumentation","src":"8287:209:16","text":" @notice Unwrap the field layout to obtain the raw bytes32 representation.\n @param fieldLayout The FieldLayout to unwrap.\n @return The unwrapped bytes32 representation of the FieldLayout."},"implemented":true,"kind":"function","modifiers":[],"name":"unwrap","nameLocation":"8508:6:16","parameters":{"id":8350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8349,"mutability":"mutable","name":"fieldLayout","nameLocation":"8527:11:16","nodeType":"VariableDeclaration","scope":8360,"src":"8515:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":8348,"nodeType":"UserDefinedTypeName","pathNode":{"id":8347,"name":"FieldLayout","nameLocations":["8515:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"8515:11:16"},"referencedDeclaration":7885,"src":"8515:11:16","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"8514:25:16"},"returnParameters":{"id":8353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8360,"src":"8563:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8563:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8562:9:16"},"scope":8361,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"FieldLayoutInstance","contractDependencies":[],"contractKind":"library","documentation":{"id":8034,"nodeType":"StructuredDocumentation","src":"3638:194:16","text":" @title FieldLayoutInstance\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @dev Provides instance functions for obtaining information from an encoded FieldLayout."},"fullyImplemented":true,"linearizedBaseContracts":[8361],"name":"FieldLayoutInstance","nameLocation":"3841:19:16","scope":8362,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":16}