{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1f4857352bda8132c91e9bf505b8f4bbd4cd7140a4fd60ef24ee01de16c00db64736f6c63430008180033","sourceMap":"395:9364:35:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;395:9364:35;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1f4857352bda8132c91e9bf505b8f4bbd4cd7140a4fd60ef24ee01de16c00db64736f6c63430008180033","sourceMap":"395:9364:35:-: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 functions for low-level storage manipulation, including storing and retrieving bytes.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Storage Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/Storage.sol\":\"Storage\"},\"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/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]}},\"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/Storage.sol":"Storage"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/Storage.sol","id":10666,"exportedSymbols":{"BYTE_TO_BITS":[21539],"Memory":[9482],"Storage":[10665],"rightMask":[21611]},"nodeType":"SourceUnit","src":"32:9728:35","nodes":[{"id":10291,"nodeType":"PragmaDirective","src":"32:25:35","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":10293,"nodeType":"ImportDirective","src":"59:44:35","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/rightMask.sol","file":"./rightMask.sol","nameLocation":"-1:-1:-1","scope":10666,"sourceUnit":21612,"symbolAliases":[{"foreign":{"id":10292,"name":"rightMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21611,"src":"68:9:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10295,"nodeType":"ImportDirective","src":"104:38:35","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/Memory.sol","file":"./Memory.sol","nameLocation":"-1:-1:-1","scope":10666,"sourceUnit":9483,"symbolAliases":[{"foreign":{"id":10294,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"113:6:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10297,"nodeType":"ImportDirective","src":"143:47:35","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":10666,"sourceUnit":21587,"symbolAliases":[{"foreign":{"id":10296,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"152:12:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10665,"nodeType":"ContractDefinition","src":"395:9364:35","nodes":[{"id":10308,"nodeType":"FunctionDefinition","src":"610:123:35","nodes":[],"body":{"id":10307,"nodeType":"Block","src":"672:61:35","nodes":[],"statements":[{"AST":{"nativeSrc":"687:42:35","nodeType":"YulBlock","src":"687:42:35","statements":[{"expression":{"arguments":[{"name":"storagePointer","nativeSrc":"702:14:35","nodeType":"YulIdentifier","src":"702:14:35"},{"name":"data","nativeSrc":"718:4:35","nodeType":"YulIdentifier","src":"718:4:35"}],"functionName":{"name":"sstore","nativeSrc":"695:6:35","nodeType":"YulIdentifier","src":"695:6:35"},"nativeSrc":"695:28:35","nodeType":"YulFunctionCall","src":"695:28:35"},"nativeSrc":"695:28:35","nodeType":"YulExpressionStatement","src":"695:28:35"}]},"evmVersion":"paris","externalReferences":[{"declaration":10303,"isOffset":false,"isSlot":false,"src":"718:4:35","valueSize":1},{"declaration":10301,"isOffset":false,"isSlot":false,"src":"702:14:35","valueSize":1}],"id":10306,"nodeType":"InlineAssembly","src":"678:51:35"}]},"documentation":{"id":10299,"nodeType":"StructuredDocumentation","src":"415:192:35","text":" @notice Store a single word of data at a specific storage pointer.\n @param storagePointer The location to store the data.\n @param data The 32-byte word of data to store."},"implemented":true,"kind":"function","modifiers":[],"name":"store","nameLocation":"619:5:35","parameters":{"id":10304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10301,"mutability":"mutable","name":"storagePointer","nameLocation":"633:14:35","nodeType":"VariableDeclaration","scope":10308,"src":"625:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10300,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10303,"mutability":"mutable","name":"data","nameLocation":"657:4:35","nodeType":"VariableDeclaration","scope":10308,"src":"649:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"649:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"624:38:35"},"returnParameters":{"id":10305,"nodeType":"ParameterList","parameters":[],"src":"672:0:35"},"scope":10665,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10330,"nodeType":"FunctionDefinition","src":"966:162:35","nodes":[],"body":{"id":10329,"nodeType":"Block","src":"1049:79:35","nodes":[],"statements":[{"expression":{"arguments":[{"id":10319,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"1061:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10320,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"1077:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":10321,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10315,"src":"1085:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1090:6:35","memberName":"length","nodeType":"MemberAccess","src":"1085:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":10325,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10315,"src":"1117:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10323,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"1098:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$9482_$","typeString":"type(library Memory)"}},"id":10324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1105:11:35","memberName":"dataPointer","nodeType":"MemberAccess","referencedDeclaration":9439,"src":"1098:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10318,"name":"store","nodeType":"Identifier","overloadedDeclarations":[10308,10330,10436],"referencedDeclaration":10436,"src":"1055:5:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":10327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1055:68:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10328,"nodeType":"ExpressionStatement","src":"1055:68:35"}]},"documentation":{"id":10309,"nodeType":"StructuredDocumentation","src":"737:226:35","text":" @notice Store bytes of data at a specific storage pointer and offset.\n @param storagePointer The base storage location.\n @param offset Offset within the storage location.\n @param data Bytes to store."},"implemented":true,"kind":"function","modifiers":[],"name":"store","nameLocation":"975:5:35","parameters":{"id":10316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10311,"mutability":"mutable","name":"storagePointer","nameLocation":"989:14:35","nodeType":"VariableDeclaration","scope":10330,"src":"981:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10310,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10313,"mutability":"mutable","name":"offset","nameLocation":"1013:6:35","nodeType":"VariableDeclaration","scope":10330,"src":"1005:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1005:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10315,"mutability":"mutable","name":"data","nameLocation":"1034:4:35","nodeType":"VariableDeclaration","scope":10330,"src":"1021:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10314,"name":"bytes","nodeType":"ElementaryTypeName","src":"1021:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"980:59:35"},"returnParameters":{"id":10317,"nodeType":"ParameterList","parameters":[],"src":"1049:0:35"},"scope":10665,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10436,"nodeType":"FunctionDefinition","src":"1489:2340:35","nodes":[],"body":{"id":10435,"nodeType":"Block","src":"1592:2237:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10342,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"1602:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1611:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1602:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10403,"nodeType":"IfStatement","src":"1598:1504:35","trueBody":{"id":10402,"nodeType":"Block","src":"1614:1488:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10345,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"1745:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":10346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1755:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1745:12:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10360,"nodeType":"IfStatement","src":"1741:122:35","trueBody":{"id":10359,"nodeType":"Block","src":"1759:104:35","statements":[{"id":10358,"nodeType":"UncheckedBlock","src":"1769:86:35","statements":[{"expression":{"id":10352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10348,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10333,"src":"1791:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10349,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"1809:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3332","id":10350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1818:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1809:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1791:29:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10353,"nodeType":"ExpressionStatement","src":"1791:29:35"},{"expression":{"id":10356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10354,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"1832:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"%=","rightHandSide":{"hexValue":"3332","id":10355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1842:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1832:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10357,"nodeType":"ExpressionStatement","src":"1832:12:35"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10361,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"1953:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1962:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1953:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10401,"nodeType":"IfStatement","src":"1949:1147:35","trueBody":{"id":10400,"nodeType":"Block","src":"1965:1131:35","statements":[{"assignments":[10365],"declarations":[{"constant":false,"id":10365,"mutability":"mutable","name":"wordRemainder","nameLocation":"2043:13:35","nodeType":"VariableDeclaration","scope":10400,"src":"2035:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10364,"name":"uint256","nodeType":"ElementaryTypeName","src":"2035:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10366,"nodeType":"VariableDeclarationStatement","src":"2035:21:35"},{"id":10373,"nodeType":"UncheckedBlock","src":"2123:60:35","statements":[{"expression":{"id":10371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10367,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10365,"src":"2145:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":10368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2161:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10369,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"2166:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2161:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2145:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10372,"nodeType":"ExpressionStatement","src":"2145:27:35"}]},{"assignments":[10375],"declarations":[{"constant":false,"id":10375,"mutability":"mutable","name":"mask","nameLocation":"2201:4:35","nodeType":"VariableDeclaration","scope":10400,"src":"2193:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2193:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10380,"initialValue":{"id":10379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2208:18:35","subExpression":{"arguments":[{"id":10377,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"2219:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10376,"name":"rightMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21611,"src":"2209:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2209:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2193:33:35"},{"AST":{"nativeSrc":"2288:499:35","nodeType":"YulBlock","src":"2288:499:35","statements":[{"nativeSrc":"2366:42:35","nodeType":"YulVariableDeclaration","src":"2366:42:35","value":{"arguments":[{"name":"offset","nativeSrc":"2387:6:35","nodeType":"YulIdentifier","src":"2387:6:35"},{"name":"BYTE_TO_BITS","nativeSrc":"2395:12:35","nodeType":"YulIdentifier","src":"2395:12:35"}],"functionName":{"name":"mul","nativeSrc":"2383:3:35","nodeType":"YulIdentifier","src":"2383:3:35"},"nativeSrc":"2383:25:35","nodeType":"YulFunctionCall","src":"2383:25:35"},"variables":[{"name":"bitOffset","nativeSrc":"2370:9:35","nodeType":"YulTypedName","src":"2370:9:35","type":""}]},{"nativeSrc":"2419:28:35","nodeType":"YulAssignment","src":"2419:28:35","value":{"arguments":[{"name":"bitOffset","nativeSrc":"2431:9:35","nodeType":"YulIdentifier","src":"2431:9:35"},{"name":"mask","nativeSrc":"2442:4:35","nodeType":"YulIdentifier","src":"2442:4:35"}],"functionName":{"name":"shr","nativeSrc":"2427:3:35","nodeType":"YulIdentifier","src":"2427:3:35"},"nativeSrc":"2427:20:35","nodeType":"YulFunctionCall","src":"2427:20:35"},"variableNames":[{"name":"mask","nativeSrc":"2419:4:35","nodeType":"YulIdentifier","src":"2419:4:35"}]},{"nativeSrc":"2458:54:35","nodeType":"YulVariableDeclaration","src":"2458:54:35","value":{"arguments":[{"name":"bitOffset","nativeSrc":"2480:9:35","nodeType":"YulIdentifier","src":"2480:9:35"},{"arguments":[{"name":"memoryPointer","nativeSrc":"2497:13:35","nodeType":"YulIdentifier","src":"2497:13:35"}],"functionName":{"name":"mload","nativeSrc":"2491:5:35","nodeType":"YulIdentifier","src":"2491:5:35"},"nativeSrc":"2491:20:35","nodeType":"YulFunctionCall","src":"2491:20:35"}],"functionName":{"name":"shr","nativeSrc":"2476:3:35","nodeType":"YulIdentifier","src":"2476:3:35"},"nativeSrc":"2476:36:35","nodeType":"YulFunctionCall","src":"2476:36:35"},"variables":[{"name":"offsetData","nativeSrc":"2462:10:35","nodeType":"YulTypedName","src":"2462:10:35","type":""}]},{"expression":{"arguments":[{"name":"storagePointer","nativeSrc":"2544:14:35","nodeType":"YulIdentifier","src":"2544:14:35"},{"arguments":[{"arguments":[{"name":"offsetData","nativeSrc":"2633:10:35","nodeType":"YulIdentifier","src":"2633:10:35"},{"name":"mask","nativeSrc":"2645:4:35","nodeType":"YulIdentifier","src":"2645:4:35"}],"functionName":{"name":"and","nativeSrc":"2629:3:35","nodeType":"YulIdentifier","src":"2629:3:35"},"nativeSrc":"2629:21:35","nodeType":"YulFunctionCall","src":"2629:21:35"},{"arguments":[{"arguments":[{"name":"storagePointer","nativeSrc":"2724:14:35","nodeType":"YulIdentifier","src":"2724:14:35"}],"functionName":{"name":"sload","nativeSrc":"2718:5:35","nodeType":"YulIdentifier","src":"2718:5:35"},"nativeSrc":"2718:21:35","nodeType":"YulFunctionCall","src":"2718:21:35"},{"arguments":[{"name":"mask","nativeSrc":"2745:4:35","nodeType":"YulIdentifier","src":"2745:4:35"}],"functionName":{"name":"not","nativeSrc":"2741:3:35","nodeType":"YulIdentifier","src":"2741:3:35"},"nativeSrc":"2741:9:35","nodeType":"YulFunctionCall","src":"2741:9:35"}],"functionName":{"name":"and","nativeSrc":"2714:3:35","nodeType":"YulIdentifier","src":"2714:3:35"},"nativeSrc":"2714:37:35","nodeType":"YulFunctionCall","src":"2714:37:35"}],"functionName":{"name":"or","nativeSrc":"2572:2:35","nodeType":"YulIdentifier","src":"2572:2:35"},"nativeSrc":"2572:193:35","nodeType":"YulFunctionCall","src":"2572:193:35"}],"functionName":{"name":"sstore","nativeSrc":"2524:6:35","nodeType":"YulIdentifier","src":"2524:6:35"},"nativeSrc":"2524:253:35","nodeType":"YulFunctionCall","src":"2524:253:35"},"nativeSrc":"2524:253:35","nodeType":"YulExpressionStatement","src":"2524:253:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":21539,"isOffset":false,"isSlot":false,"src":"2395:12:35","valueSize":1},{"declaration":10375,"isOffset":false,"isSlot":false,"src":"2419:4:35","valueSize":1},{"declaration":10375,"isOffset":false,"isSlot":false,"src":"2442:4:35","valueSize":1},{"declaration":10375,"isOffset":false,"isSlot":false,"src":"2645:4:35","valueSize":1},{"declaration":10375,"isOffset":false,"isSlot":false,"src":"2745:4:35","valueSize":1},{"declaration":10339,"isOffset":false,"isSlot":false,"src":"2497:13:35","valueSize":1},{"declaration":10335,"isOffset":false,"isSlot":false,"src":"2387:6:35","valueSize":1},{"declaration":10333,"isOffset":false,"isSlot":false,"src":"2544:14:35","valueSize":1},{"declaration":10333,"isOffset":false,"isSlot":false,"src":"2724:14:35","valueSize":1}],"id":10381,"nodeType":"InlineAssembly","src":"2279:508:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10382,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"2826:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10383,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10365,"src":"2836:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2826:23:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10386,"nodeType":"IfStatement","src":"2822:36:35","trueBody":{"functionReturnParameters":10341,"id":10385,"nodeType":"Return","src":"2851:7:35"}},{"id":10399,"nodeType":"UncheckedBlock","src":"2959:129:35","statements":[{"expression":{"id":10389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10387,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10333,"src":"2981:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2999:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2981:19:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10390,"nodeType":"ExpressionStatement","src":"2981:19:35"},{"expression":{"id":10393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10391,"name":"memoryPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10339,"src":"3012:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10392,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10365,"src":"3029:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3012:30:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10394,"nodeType":"ExpressionStatement","src":"3012:30:35"},{"expression":{"id":10397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10395,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3054:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":10396,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10365,"src":"3064:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3054:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10398,"nodeType":"ExpressionStatement","src":"3054:23:35"}]}]}}]}},{"body":{"id":10421,"nodeType":"Block","src":"3153:232:35","statements":[{"AST":{"nativeSrc":"3211:62:35","nodeType":"YulBlock","src":"3211:62:35","statements":[{"expression":{"arguments":[{"name":"storagePointer","nativeSrc":"3228:14:35","nodeType":"YulIdentifier","src":"3228:14:35"},{"arguments":[{"name":"memoryPointer","nativeSrc":"3250:13:35","nodeType":"YulIdentifier","src":"3250:13:35"}],"functionName":{"name":"mload","nativeSrc":"3244:5:35","nodeType":"YulIdentifier","src":"3244:5:35"},"nativeSrc":"3244:20:35","nodeType":"YulFunctionCall","src":"3244:20:35"}],"functionName":{"name":"sstore","nativeSrc":"3221:6:35","nodeType":"YulIdentifier","src":"3221:6:35"},"nativeSrc":"3221:44:35","nodeType":"YulFunctionCall","src":"3221:44:35"},"nativeSrc":"3221:44:35","nodeType":"YulExpressionStatement","src":"3221:44:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10339,"isOffset":false,"isSlot":false,"src":"3250:13:35","valueSize":1},{"declaration":10333,"isOffset":false,"isSlot":false,"src":"3228:14:35","valueSize":1}],"id":10407,"nodeType":"InlineAssembly","src":"3202:71:35"},{"id":10420,"nodeType":"UncheckedBlock","src":"3280:99:35","statements":[{"expression":{"id":10410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10408,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10333,"src":"3300:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3300:19:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10411,"nodeType":"ExpressionStatement","src":"3300:19:35"},{"expression":{"id":10414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10412,"name":"memoryPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10339,"src":"3329:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":10413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3346:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3329:19:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10415,"nodeType":"ExpressionStatement","src":"3329:19:35"},{"expression":{"id":10418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10416,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3358:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":10417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3358:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10419,"nodeType":"ExpressionStatement","src":"3358:12:35"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10404,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3139:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":10405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3149:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3139:12:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10422,"nodeType":"WhileStatement","src":"3132:253:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10423,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3453:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3453:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10434,"nodeType":"IfStatement","src":"3449:376:35","trueBody":{"id":10433,"nodeType":"Block","src":"3465:360:35","statements":[{"assignments":[10427],"declarations":[{"constant":false,"id":10427,"mutability":"mutable","name":"mask","nameLocation":"3481:4:35","nodeType":"VariableDeclaration","scope":10433,"src":"3473:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10426,"name":"uint256","nodeType":"ElementaryTypeName","src":"3473:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10431,"initialValue":{"arguments":[{"id":10429,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"3498:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10428,"name":"rightMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21611,"src":"3488:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3473:32:35"},{"AST":{"nativeSrc":"3563:256:35","nodeType":"YulBlock","src":"3563:256:35","statements":[{"expression":{"arguments":[{"name":"storagePointer","nativeSrc":"3591:14:35","nodeType":"YulIdentifier","src":"3591:14:35"},{"arguments":[{"arguments":[{"arguments":[{"name":"memoryPointer","nativeSrc":"3678:13:35","nodeType":"YulIdentifier","src":"3678:13:35"}],"functionName":{"name":"mload","nativeSrc":"3672:5:35","nodeType":"YulIdentifier","src":"3672:5:35"},"nativeSrc":"3672:20:35","nodeType":"YulFunctionCall","src":"3672:20:35"},{"arguments":[{"name":"mask","nativeSrc":"3698:4:35","nodeType":"YulIdentifier","src":"3698:4:35"}],"functionName":{"name":"not","nativeSrc":"3694:3:35","nodeType":"YulIdentifier","src":"3694:3:35"},"nativeSrc":"3694:9:35","nodeType":"YulFunctionCall","src":"3694:9:35"}],"functionName":{"name":"and","nativeSrc":"3668:3:35","nodeType":"YulIdentifier","src":"3668:3:35"},"nativeSrc":"3668:36:35","nodeType":"YulFunctionCall","src":"3668:36:35"},{"arguments":[{"arguments":[{"name":"storagePointer","nativeSrc":"3767:14:35","nodeType":"YulIdentifier","src":"3767:14:35"}],"functionName":{"name":"sload","nativeSrc":"3761:5:35","nodeType":"YulIdentifier","src":"3761:5:35"},"nativeSrc":"3761:21:35","nodeType":"YulFunctionCall","src":"3761:21:35"},{"name":"mask","nativeSrc":"3784:4:35","nodeType":"YulIdentifier","src":"3784:4:35"}],"functionName":{"name":"and","nativeSrc":"3757:3:35","nodeType":"YulIdentifier","src":"3757:3:35"},"nativeSrc":"3757:32:35","nodeType":"YulFunctionCall","src":"3757:32:35"}],"functionName":{"name":"or","nativeSrc":"3617:2:35","nodeType":"YulIdentifier","src":"3617:2:35"},"nativeSrc":"3617:184:35","nodeType":"YulFunctionCall","src":"3617:184:35"}],"functionName":{"name":"sstore","nativeSrc":"3573:6:35","nodeType":"YulIdentifier","src":"3573:6:35"},"nativeSrc":"3573:238:35","nodeType":"YulFunctionCall","src":"3573:238:35"},"nativeSrc":"3573:238:35","nodeType":"YulExpressionStatement","src":"3573:238:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10427,"isOffset":false,"isSlot":false,"src":"3698:4:35","valueSize":1},{"declaration":10427,"isOffset":false,"isSlot":false,"src":"3784:4:35","valueSize":1},{"declaration":10339,"isOffset":false,"isSlot":false,"src":"3678:13:35","valueSize":1},{"declaration":10333,"isOffset":false,"isSlot":false,"src":"3591:14:35","valueSize":1},{"declaration":10333,"isOffset":false,"isSlot":false,"src":"3767:14:35","valueSize":1}],"id":10432,"nodeType":"InlineAssembly","src":"3554:265:35"}]}}]},"documentation":{"id":10331,"nodeType":"StructuredDocumentation","src":"1132:354:35","text":" @notice Stores raw bytes to storage at a given pointer, offset, and length, keeping the rest of the word intact.\n @param storagePointer The base storage location.\n @param offset Offset within the storage location.\n @param memoryPointer Pointer to the start of the data in memory.\n @param length Length of the data in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"store","nameLocation":"1498:5:35","parameters":{"id":10340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10333,"mutability":"mutable","name":"storagePointer","nameLocation":"1512:14:35","nodeType":"VariableDeclaration","scope":10436,"src":"1504:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10332,"name":"uint256","nodeType":"ElementaryTypeName","src":"1504:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10335,"mutability":"mutable","name":"offset","nameLocation":"1536:6:35","nodeType":"VariableDeclaration","scope":10436,"src":"1528:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10334,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10337,"mutability":"mutable","name":"length","nameLocation":"1552:6:35","nodeType":"VariableDeclaration","scope":10436,"src":"1544:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10336,"name":"uint256","nodeType":"ElementaryTypeName","src":"1544:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10339,"mutability":"mutable","name":"memoryPointer","nameLocation":"1568:13:35","nodeType":"VariableDeclaration","scope":10436,"src":"1560:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10338,"name":"uint256","nodeType":"ElementaryTypeName","src":"1560:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1503:79:35"},"returnParameters":{"id":10341,"nodeType":"ParameterList","parameters":[],"src":"1592:0:35"},"scope":10665,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10462,"nodeType":"FunctionDefinition","src":"4032:370:35","nodes":[],"body":{"id":10461,"nodeType":"Block","src":"4095:307:35","nodes":[],"statements":[{"assignments":[10445],"declarations":[{"constant":false,"id":10445,"mutability":"mutable","name":"limit","nameLocation":"4162:5:35","nodeType":"VariableDeclaration","scope":10461,"src":"4154:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10444,"name":"uint256","nodeType":"ElementaryTypeName","src":"4154:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10454,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10446,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10439,"src":"4170:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10447,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10441,"src":"4188:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":10448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4197:2:35","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"4188:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4187:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3332","id":10451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4187:18:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4170:35:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4154:51:35"},{"body":{"id":10459,"nodeType":"Block","src":"4242:156:35","statements":[{"AST":{"nativeSrc":"4300:92:35","nodeType":"YulBlock","src":"4300:92:35","statements":[{"expression":{"arguments":[{"name":"storagePointer","nativeSrc":"4317:14:35","nodeType":"YulIdentifier","src":"4317:14:35"},{"kind":"number","nativeSrc":"4333:1:35","nodeType":"YulLiteral","src":"4333:1:35","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"4310:6:35","nodeType":"YulIdentifier","src":"4310:6:35"},"nativeSrc":"4310:25:35","nodeType":"YulFunctionCall","src":"4310:25:35"},"nativeSrc":"4310:25:35","nodeType":"YulExpressionStatement","src":"4310:25:35"},{"nativeSrc":"4344:40:35","nodeType":"YulAssignment","src":"4344:40:35","value":{"arguments":[{"name":"storagePointer","nativeSrc":"4366:14:35","nodeType":"YulIdentifier","src":"4366:14:35"},{"kind":"number","nativeSrc":"4382:1:35","nodeType":"YulLiteral","src":"4382:1:35","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4362:3:35","nodeType":"YulIdentifier","src":"4362:3:35"},"nativeSrc":"4362:22:35","nodeType":"YulFunctionCall","src":"4362:22:35"},"variableNames":[{"name":"storagePointer","nativeSrc":"4344:14:35","nodeType":"YulIdentifier","src":"4344:14:35"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10439,"isOffset":false,"isSlot":false,"src":"4317:14:35","valueSize":1},{"declaration":10439,"isOffset":false,"isSlot":false,"src":"4344:14:35","valueSize":1},{"declaration":10439,"isOffset":false,"isSlot":false,"src":"4366:14:35","valueSize":1}],"id":10458,"nodeType":"InlineAssembly","src":"4291:101:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10455,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10439,"src":"4218:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10456,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10445,"src":"4235:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4218:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10460,"nodeType":"WhileStatement","src":"4211:187:35"}]},"documentation":{"id":10437,"nodeType":"StructuredDocumentation","src":"3833:196:35","text":" @notice Set multiple storage locations to zero.\n @param storagePointer The starting storage location.\n @param length The number of storage locations to set to zero, in bytes"},"implemented":true,"kind":"function","modifiers":[],"name":"zero","nameLocation":"4041:4:35","parameters":{"id":10442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10439,"mutability":"mutable","name":"storagePointer","nameLocation":"4054:14:35","nodeType":"VariableDeclaration","scope":10462,"src":"4046:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10438,"name":"uint256","nodeType":"ElementaryTypeName","src":"4046:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10441,"mutability":"mutable","name":"length","nameLocation":"4078:6:35","nodeType":"VariableDeclaration","scope":10462,"src":"4070:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10440,"name":"uint256","nodeType":"ElementaryTypeName","src":"4070:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4045:40:35"},"returnParameters":{"id":10443,"nodeType":"ParameterList","parameters":[],"src":"4095:0:35"},"scope":10665,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10472,"nodeType":"FunctionDefinition","src":"4605:137:35","nodes":[],"body":{"id":10471,"nodeType":"Block","src":"4680:62:35","nodes":[],"statements":[{"AST":{"nativeSrc":"4695:43:35","nodeType":"YulBlock","src":"4695:43:35","statements":[{"nativeSrc":"4703:29:35","nodeType":"YulAssignment","src":"4703:29:35","value":{"arguments":[{"name":"storagePointer","nativeSrc":"4717:14:35","nodeType":"YulIdentifier","src":"4717:14:35"}],"functionName":{"name":"sload","nativeSrc":"4711:5:35","nodeType":"YulIdentifier","src":"4711:5:35"},"nativeSrc":"4711:21:35","nodeType":"YulFunctionCall","src":"4711:21:35"},"variableNames":[{"name":"word","nativeSrc":"4703:4:35","nodeType":"YulIdentifier","src":"4703:4:35"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10465,"isOffset":false,"isSlot":false,"src":"4717:14:35","valueSize":1},{"declaration":10468,"isOffset":false,"isSlot":false,"src":"4703:4:35","valueSize":1}],"id":10470,"nodeType":"InlineAssembly","src":"4686:52:35"}]},"documentation":{"id":10463,"nodeType":"StructuredDocumentation","src":"4406:196:35","text":" @notice Load a single word of data from a specific storage pointer.\n @param storagePointer The location to load the data from.\n @return word The loaded 32-byte word of data."},"implemented":true,"kind":"function","modifiers":[],"name":"load","nameLocation":"4614:4:35","parameters":{"id":10466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10465,"mutability":"mutable","name":"storagePointer","nameLocation":"4627:14:35","nodeType":"VariableDeclaration","scope":10472,"src":"4619:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10464,"name":"uint256","nodeType":"ElementaryTypeName","src":"4619:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4618:24:35"},"returnParameters":{"id":10469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10468,"mutability":"mutable","name":"word","nameLocation":"4674:4:35","nodeType":"VariableDeclaration","scope":10472,"src":"4666:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4666:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4665:14:35"},"scope":10665,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10498,"nodeType":"FunctionDefinition","src":"5042:669:35","nodes":[],"body":{"id":10497,"nodeType":"Block","src":"5156:555:35","nodes":[],"statements":[{"assignments":[10485],"declarations":[{"constant":false,"id":10485,"mutability":"mutable","name":"memoryPointer","nameLocation":"5170:13:35","nodeType":"VariableDeclaration","scope":10497,"src":"5162:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10484,"name":"uint256","nodeType":"ElementaryTypeName","src":"5162:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10486,"nodeType":"VariableDeclarationStatement","src":"5162:21:35"},{"AST":{"nativeSrc":"5237:394:35","nodeType":"YulBlock","src":"5237:394:35","statements":[{"body":{"nativeSrc":"5348:61:35","nodeType":"YulBlock","src":"5348:61:35","statements":[{"nativeSrc":"5358:43:35","nodeType":"YulAssignment","src":"5358:43:35","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5377:5:35","nodeType":"YulIdentifier","src":"5377:5:35"},{"kind":"number","nativeSrc":"5384:4:35","nodeType":"YulLiteral","src":"5384:4:35","type":"","value":"0x1F"}],"functionName":{"name":"add","nativeSrc":"5373:3:35","nodeType":"YulIdentifier","src":"5373:3:35"},"nativeSrc":"5373:16:35","nodeType":"YulFunctionCall","src":"5373:16:35"},{"arguments":[{"kind":"number","nativeSrc":"5395:4:35","nodeType":"YulLiteral","src":"5395:4:35","type":"","value":"0x1F"}],"functionName":{"name":"not","nativeSrc":"5391:3:35","nodeType":"YulIdentifier","src":"5391:3:35"},"nativeSrc":"5391:9:35","nodeType":"YulFunctionCall","src":"5391:9:35"}],"functionName":{"name":"and","nativeSrc":"5369:3:35","nodeType":"YulIdentifier","src":"5369:3:35"},"nativeSrc":"5369:32:35","nodeType":"YulFunctionCall","src":"5369:32:35"},"variableNames":[{"name":"_result","nativeSrc":"5358:7:35","nodeType":"YulIdentifier","src":"5358:7:35"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"5299:110:35","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5330:5:35","nodeType":"YulTypedName","src":"5330:5:35","type":""}],"returnVariables":[{"name":"_result","nativeSrc":"5340:7:35","nodeType":"YulTypedName","src":"5340:7:35","type":""}],"src":"5299:110:35"},{"nativeSrc":"5442:21:35","nodeType":"YulAssignment","src":"5442:21:35","value":{"arguments":[{"kind":"number","nativeSrc":"5458:4:35","nodeType":"YulLiteral","src":"5458:4:35","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5452:5:35","nodeType":"YulIdentifier","src":"5452:5:35"},"nativeSrc":"5452:11:35","nodeType":"YulFunctionCall","src":"5452:11:35"},"variableNames":[{"name":"result","nativeSrc":"5442:6:35","nodeType":"YulIdentifier","src":"5442:6:35"}]},{"nativeSrc":"5470:34:35","nodeType":"YulAssignment","src":"5470:34:35","value":{"arguments":[{"name":"result","nativeSrc":"5491:6:35","nodeType":"YulIdentifier","src":"5491:6:35"},{"kind":"number","nativeSrc":"5499:4:35","nodeType":"YulLiteral","src":"5499:4:35","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5487:3:35","nodeType":"YulIdentifier","src":"5487:3:35"},"nativeSrc":"5487:17:35","nodeType":"YulFunctionCall","src":"5487:17:35"},"variableNames":[{"name":"memoryPointer","nativeSrc":"5470:13:35","nodeType":"YulIdentifier","src":"5470:13:35"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5518:4:35","nodeType":"YulLiteral","src":"5518:4:35","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"memoryPointer","nativeSrc":"5550:13:35","nodeType":"YulIdentifier","src":"5550:13:35"},{"name":"length","nativeSrc":"5565:6:35","nodeType":"YulIdentifier","src":"5565:6:35"}],"functionName":{"name":"add","nativeSrc":"5546:3:35","nodeType":"YulIdentifier","src":"5546:3:35"},"nativeSrc":"5546:26:35","nodeType":"YulFunctionCall","src":"5546:26:35"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5524:21:35","nodeType":"YulIdentifier","src":"5524:21:35"},"nativeSrc":"5524:49:35","nodeType":"YulFunctionCall","src":"5524:49:35"}],"functionName":{"name":"mstore","nativeSrc":"5511:6:35","nodeType":"YulIdentifier","src":"5511:6:35"},"nativeSrc":"5511:63:35","nodeType":"YulFunctionCall","src":"5511:63:35"},"nativeSrc":"5511:63:35","nodeType":"YulExpressionStatement","src":"5511:63:35"},{"expression":{"arguments":[{"name":"result","nativeSrc":"5610:6:35","nodeType":"YulIdentifier","src":"5610:6:35"},{"name":"length","nativeSrc":"5618:6:35","nodeType":"YulIdentifier","src":"5618:6:35"}],"functionName":{"name":"mstore","nativeSrc":"5603:6:35","nodeType":"YulIdentifier","src":"5603:6:35"},"nativeSrc":"5603:22:35","nodeType":"YulFunctionCall","src":"5603:22:35"},"nativeSrc":"5603:22:35","nodeType":"YulExpressionStatement","src":"5603:22:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10479,"isOffset":false,"isSlot":false,"src":"5565:6:35","valueSize":1},{"declaration":10479,"isOffset":false,"isSlot":false,"src":"5618:6:35","valueSize":1},{"declaration":10485,"isOffset":false,"isSlot":false,"src":"5470:13:35","valueSize":1},{"declaration":10485,"isOffset":false,"isSlot":false,"src":"5550:13:35","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"5442:6:35","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"5491:6:35","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"5610:6:35","valueSize":1}],"id":10487,"nodeType":"InlineAssembly","src":"5228:403:35"},{"expression":{"arguments":[{"id":10489,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10475,"src":"5641:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10490,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10477,"src":"5657:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10491,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10479,"src":"5665:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10492,"name":"memoryPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10485,"src":"5673:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10488,"name":"load","nodeType":"Identifier","overloadedDeclarations":[10472,10498,10618],"referencedDeclaration":10618,"src":"5636:4:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256) view"}},"id":10493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:51:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10494,"nodeType":"ExpressionStatement","src":"5636:51:35"},{"expression":{"id":10495,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10482,"src":"5700:6:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10483,"id":10496,"nodeType":"Return","src":"5693:13:35"}]},"documentation":{"id":10473,"nodeType":"StructuredDocumentation","src":"4746:293:35","text":" @notice Load raw bytes from storage at a given pointer, offset, and length.\n @param storagePointer The base storage location.\n @param length Length of the data in bytes.\n @param offset Offset within the storage location.\n @return result The loaded bytes of data."},"implemented":true,"kind":"function","modifiers":[],"name":"load","nameLocation":"5051:4:35","parameters":{"id":10480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10475,"mutability":"mutable","name":"storagePointer","nameLocation":"5064:14:35","nodeType":"VariableDeclaration","scope":10498,"src":"5056:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10474,"name":"uint256","nodeType":"ElementaryTypeName","src":"5056:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10477,"mutability":"mutable","name":"offset","nameLocation":"5088:6:35","nodeType":"VariableDeclaration","scope":10498,"src":"5080:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10476,"name":"uint256","nodeType":"ElementaryTypeName","src":"5080:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10479,"mutability":"mutable","name":"length","nameLocation":"5104:6:35","nodeType":"VariableDeclaration","scope":10498,"src":"5096:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10478,"name":"uint256","nodeType":"ElementaryTypeName","src":"5096:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5055:56:35"},"returnParameters":{"id":10483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10482,"mutability":"mutable","name":"result","nameLocation":"5148:6:35","nodeType":"VariableDeclaration","scope":10498,"src":"5135:19:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10481,"name":"bytes","nodeType":"ElementaryTypeName","src":"5135:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5134:21:35"},"scope":10665,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10618,"nodeType":"FunctionDefinition","src":"6076:2380:35","nodes":[],"body":{"id":10617,"nodeType":"Block","src":"6183:2273:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10510,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"6193:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6202:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6193:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10585,"nodeType":"IfStatement","src":"6189:1542:35","trueBody":{"id":10584,"nodeType":"Block","src":"6205:1526:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10513,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"6336:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":10514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6346:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6336:12:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10528,"nodeType":"IfStatement","src":"6332:122:35","trueBody":{"id":10527,"nodeType":"Block","src":"6350:104:35","statements":[{"id":10526,"nodeType":"UncheckedBlock","src":"6360:86:35","statements":[{"expression":{"id":10520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10516,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"6382:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10517,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"6400:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3332","id":10518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6409:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6400:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6382:29:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10521,"nodeType":"ExpressionStatement","src":"6382:29:35"},{"expression":{"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10522,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"6423:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"%=","rightHandSide":{"hexValue":"3332","id":10523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6433:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6423:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10525,"nodeType":"ExpressionStatement","src":"6423:12:35"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10529,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"6544:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6553:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6544:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10583,"nodeType":"IfStatement","src":"6540:1185:35","trueBody":{"id":10582,"nodeType":"Block","src":"6556:1169:35","statements":[{"assignments":[10533],"declarations":[{"constant":false,"id":10533,"mutability":"mutable","name":"wordRemainder","nameLocation":"6634:13:35","nodeType":"VariableDeclaration","scope":10582,"src":"6626:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10532,"name":"uint256","nodeType":"ElementaryTypeName","src":"6626:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10534,"nodeType":"VariableDeclarationStatement","src":"6626:21:35"},{"id":10541,"nodeType":"UncheckedBlock","src":"6714:60:35","statements":[{"expression":{"id":10539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10535,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"6736:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":10536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6752:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10537,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"6757:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6752:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6736:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10540,"nodeType":"ExpressionStatement","src":"6736:27:35"}]},{"assignments":[10543],"declarations":[{"constant":false,"id":10543,"mutability":"mutable","name":"mask","nameLocation":"6792:4:35","nodeType":"VariableDeclaration","scope":10582,"src":"6784:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10542,"name":"uint256","nodeType":"ElementaryTypeName","src":"6784:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10544,"nodeType":"VariableDeclarationStatement","src":"6784:12:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10545,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"6810:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10546,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"6819:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6810:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10561,"nodeType":"Block","src":"6887:54:35","statements":[{"expression":{"id":10559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10555,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10543,"src":"6899:4:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10557,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"6916:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10556,"name":"rightMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21611,"src":"6906:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6906:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6899:31:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10560,"nodeType":"ExpressionStatement","src":"6899:31:35"}]},"id":10562,"nodeType":"IfStatement","src":"6806:135:35","trueBody":{"id":10554,"nodeType":"Block","src":"6834:47:35","statements":[{"expression":{"id":10552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10548,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10543,"src":"6846:4:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10550,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"6863:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10549,"name":"rightMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21611,"src":"6853:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6853:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6846:24:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10553,"nodeType":"ExpressionStatement","src":"6846:24:35"}]}},{"AST":{"nativeSrc":"7002:414:35","nodeType":"YulBlock","src":"7002:414:35","statements":[{"nativeSrc":"7080:71:35","nodeType":"YulVariableDeclaration","src":"7080:71:35","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7106:6:35","nodeType":"YulIdentifier","src":"7106:6:35"},{"name":"BYTE_TO_BITS","nativeSrc":"7114:12:35","nodeType":"YulIdentifier","src":"7114:12:35"}],"functionName":{"name":"mul","nativeSrc":"7102:3:35","nodeType":"YulIdentifier","src":"7102:3:35"},"nativeSrc":"7102:25:35","nodeType":"YulFunctionCall","src":"7102:25:35"},{"arguments":[{"name":"storagePointer","nativeSrc":"7135:14:35","nodeType":"YulIdentifier","src":"7135:14:35"}],"functionName":{"name":"sload","nativeSrc":"7129:5:35","nodeType":"YulIdentifier","src":"7129:5:35"},"nativeSrc":"7129:21:35","nodeType":"YulFunctionCall","src":"7129:21:35"}],"functionName":{"name":"shl","nativeSrc":"7098:3:35","nodeType":"YulIdentifier","src":"7098:3:35"},"nativeSrc":"7098:53:35","nodeType":"YulFunctionCall","src":"7098:53:35"},"variables":[{"name":"offsetData","nativeSrc":"7084:10:35","nodeType":"YulTypedName","src":"7084:10:35","type":""}]},{"expression":{"arguments":[{"name":"memoryPointer","nativeSrc":"7183:13:35","nodeType":"YulIdentifier","src":"7183:13:35"},{"arguments":[{"arguments":[{"name":"offsetData","nativeSrc":"7269:10:35","nodeType":"YulIdentifier","src":"7269:10:35"},{"arguments":[{"name":"mask","nativeSrc":"7285:4:35","nodeType":"YulIdentifier","src":"7285:4:35"}],"functionName":{"name":"not","nativeSrc":"7281:3:35","nodeType":"YulIdentifier","src":"7281:3:35"},"nativeSrc":"7281:9:35","nodeType":"YulFunctionCall","src":"7281:9:35"}],"functionName":{"name":"and","nativeSrc":"7265:3:35","nodeType":"YulIdentifier","src":"7265:3:35"},"nativeSrc":"7265:26:35","nodeType":"YulFunctionCall","src":"7265:26:35"},{"arguments":[{"arguments":[{"name":"memoryPointer","nativeSrc":"7359:13:35","nodeType":"YulIdentifier","src":"7359:13:35"}],"functionName":{"name":"mload","nativeSrc":"7353:5:35","nodeType":"YulIdentifier","src":"7353:5:35"},"nativeSrc":"7353:20:35","nodeType":"YulFunctionCall","src":"7353:20:35"},{"name":"mask","nativeSrc":"7375:4:35","nodeType":"YulIdentifier","src":"7375:4:35"}],"functionName":{"name":"and","nativeSrc":"7349:3:35","nodeType":"YulIdentifier","src":"7349:3:35"},"nativeSrc":"7349:31:35","nodeType":"YulFunctionCall","src":"7349:31:35"}],"functionName":{"name":"or","nativeSrc":"7210:2:35","nodeType":"YulIdentifier","src":"7210:2:35"},"nativeSrc":"7210:184:35","nodeType":"YulFunctionCall","src":"7210:184:35"}],"functionName":{"name":"mstore","nativeSrc":"7163:6:35","nodeType":"YulIdentifier","src":"7163:6:35"},"nativeSrc":"7163:243:35","nodeType":"YulFunctionCall","src":"7163:243:35"},"nativeSrc":"7163:243:35","nodeType":"YulExpressionStatement","src":"7163:243:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":21539,"isOffset":false,"isSlot":false,"src":"7114:12:35","valueSize":1},{"declaration":10543,"isOffset":false,"isSlot":false,"src":"7285:4:35","valueSize":1},{"declaration":10543,"isOffset":false,"isSlot":false,"src":"7375:4:35","valueSize":1},{"declaration":10507,"isOffset":false,"isSlot":false,"src":"7183:13:35","valueSize":1},{"declaration":10507,"isOffset":false,"isSlot":false,"src":"7359:13:35","valueSize":1},{"declaration":10503,"isOffset":false,"isSlot":false,"src":"7106:6:35","valueSize":1},{"declaration":10501,"isOffset":false,"isSlot":false,"src":"7135:14:35","valueSize":1}],"id":10563,"nodeType":"InlineAssembly","src":"6993:423:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10564,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"7455:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10565,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"7465:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7455:23:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10568,"nodeType":"IfStatement","src":"7451:36:35","trueBody":{"functionReturnParameters":10509,"id":10567,"nodeType":"Return","src":"7480:7:35"}},{"id":10581,"nodeType":"UncheckedBlock","src":"7588:129:35","statements":[{"expression":{"id":10571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10569,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"7610:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7628:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7610:19:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10572,"nodeType":"ExpressionStatement","src":"7610:19:35"},{"expression":{"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10573,"name":"memoryPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10507,"src":"7641:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10574,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"7658:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7641:30:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10576,"nodeType":"ExpressionStatement","src":"7641:30:35"},{"expression":{"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10577,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"7683:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":10578,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"7693:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7683:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10580,"nodeType":"ExpressionStatement","src":"7683:23:35"}]}]}}]}},{"body":{"id":10603,"nodeType":"Block","src":"7781:232:35","statements":[{"AST":{"nativeSrc":"7839:62:35","nodeType":"YulBlock","src":"7839:62:35","statements":[{"expression":{"arguments":[{"name":"memoryPointer","nativeSrc":"7856:13:35","nodeType":"YulIdentifier","src":"7856:13:35"},{"arguments":[{"name":"storagePointer","nativeSrc":"7877:14:35","nodeType":"YulIdentifier","src":"7877:14:35"}],"functionName":{"name":"sload","nativeSrc":"7871:5:35","nodeType":"YulIdentifier","src":"7871:5:35"},"nativeSrc":"7871:21:35","nodeType":"YulFunctionCall","src":"7871:21:35"}],"functionName":{"name":"mstore","nativeSrc":"7849:6:35","nodeType":"YulIdentifier","src":"7849:6:35"},"nativeSrc":"7849:44:35","nodeType":"YulFunctionCall","src":"7849:44:35"},"nativeSrc":"7849:44:35","nodeType":"YulExpressionStatement","src":"7849:44:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10507,"isOffset":false,"isSlot":false,"src":"7856:13:35","valueSize":1},{"declaration":10501,"isOffset":false,"isSlot":false,"src":"7877:14:35","valueSize":1}],"id":10589,"nodeType":"InlineAssembly","src":"7830:71:35"},{"id":10602,"nodeType":"UncheckedBlock","src":"7908:99:35","statements":[{"expression":{"id":10592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10590,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"7928:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":10591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7946:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7928:19:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10593,"nodeType":"ExpressionStatement","src":"7928:19:35"},{"expression":{"id":10596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10594,"name":"memoryPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10507,"src":"7957:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":10595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7974:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7957:19:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10597,"nodeType":"ExpressionStatement","src":"7957:19:35"},{"expression":{"id":10600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10598,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"7986:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":10599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7996:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7986:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10601,"nodeType":"ExpressionStatement","src":"7986:12:35"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10586,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"7767:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":10587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7777:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7767:12:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10604,"nodeType":"WhileStatement","src":"7760:253:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10605,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"8081:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8090:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8081:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10616,"nodeType":"IfStatement","src":"8077:375:35","trueBody":{"id":10615,"nodeType":"Block","src":"8093:359:35","statements":[{"assignments":[10609],"declarations":[{"constant":false,"id":10609,"mutability":"mutable","name":"mask","nameLocation":"8109:4:35","nodeType":"VariableDeclaration","scope":10615,"src":"8101:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10608,"name":"uint256","nodeType":"ElementaryTypeName","src":"8101:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10613,"initialValue":{"arguments":[{"id":10611,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"8126:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10610,"name":"rightMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21611,"src":"8116:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8116:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8101:32:35"},{"AST":{"nativeSrc":"8191:255:35","nodeType":"YulBlock","src":"8191:255:35","statements":[{"expression":{"arguments":[{"name":"memoryPointer","nativeSrc":"8219:13:35","nodeType":"YulIdentifier","src":"8219:13:35"},{"arguments":[{"arguments":[{"arguments":[{"name":"storagePointer","nativeSrc":"8305:14:35","nodeType":"YulIdentifier","src":"8305:14:35"}],"functionName":{"name":"sload","nativeSrc":"8299:5:35","nodeType":"YulIdentifier","src":"8299:5:35"},"nativeSrc":"8299:21:35","nodeType":"YulFunctionCall","src":"8299:21:35"},{"arguments":[{"name":"mask","nativeSrc":"8326:4:35","nodeType":"YulIdentifier","src":"8326:4:35"}],"functionName":{"name":"not","nativeSrc":"8322:3:35","nodeType":"YulIdentifier","src":"8322:3:35"},"nativeSrc":"8322:9:35","nodeType":"YulFunctionCall","src":"8322:9:35"}],"functionName":{"name":"and","nativeSrc":"8295:3:35","nodeType":"YulIdentifier","src":"8295:3:35"},"nativeSrc":"8295:37:35","nodeType":"YulFunctionCall","src":"8295:37:35"},{"arguments":[{"arguments":[{"name":"memoryPointer","nativeSrc":"8395:13:35","nodeType":"YulIdentifier","src":"8395:13:35"}],"functionName":{"name":"mload","nativeSrc":"8389:5:35","nodeType":"YulIdentifier","src":"8389:5:35"},"nativeSrc":"8389:20:35","nodeType":"YulFunctionCall","src":"8389:20:35"},{"name":"mask","nativeSrc":"8411:4:35","nodeType":"YulIdentifier","src":"8411:4:35"}],"functionName":{"name":"and","nativeSrc":"8385:3:35","nodeType":"YulIdentifier","src":"8385:3:35"},"nativeSrc":"8385:31:35","nodeType":"YulFunctionCall","src":"8385:31:35"}],"functionName":{"name":"or","nativeSrc":"8244:2:35","nodeType":"YulIdentifier","src":"8244:2:35"},"nativeSrc":"8244:184:35","nodeType":"YulFunctionCall","src":"8244:184:35"}],"functionName":{"name":"mstore","nativeSrc":"8201:6:35","nodeType":"YulIdentifier","src":"8201:6:35"},"nativeSrc":"8201:237:35","nodeType":"YulFunctionCall","src":"8201:237:35"},"nativeSrc":"8201:237:35","nodeType":"YulExpressionStatement","src":"8201:237:35"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10609,"isOffset":false,"isSlot":false,"src":"8326:4:35","valueSize":1},{"declaration":10609,"isOffset":false,"isSlot":false,"src":"8411:4:35","valueSize":1},{"declaration":10507,"isOffset":false,"isSlot":false,"src":"8219:13:35","valueSize":1},{"declaration":10507,"isOffset":false,"isSlot":false,"src":"8395:13:35","valueSize":1},{"declaration":10501,"isOffset":false,"isSlot":false,"src":"8305:14:35","valueSize":1}],"id":10614,"nodeType":"InlineAssembly","src":"8182:264:35"}]}}]},"documentation":{"id":10499,"nodeType":"StructuredDocumentation","src":"5715:358:35","text":" @notice Append raw bytes from storage at a given pointer, offset, and length to a specific memory pointer.\n @param storagePointer The base storage location.\n @param length Length of the data in bytes.\n @param offset Offset within the storage location.\n @param memoryPointer Pointer to the location in memory to append the data."},"implemented":true,"kind":"function","modifiers":[],"name":"load","nameLocation":"6085:4:35","parameters":{"id":10508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10501,"mutability":"mutable","name":"storagePointer","nameLocation":"6098:14:35","nodeType":"VariableDeclaration","scope":10618,"src":"6090:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10500,"name":"uint256","nodeType":"ElementaryTypeName","src":"6090:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10503,"mutability":"mutable","name":"offset","nameLocation":"6122:6:35","nodeType":"VariableDeclaration","scope":10618,"src":"6114:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10502,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10505,"mutability":"mutable","name":"length","nameLocation":"6138:6:35","nodeType":"VariableDeclaration","scope":10618,"src":"6130:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10504,"name":"uint256","nodeType":"ElementaryTypeName","src":"6130:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10507,"mutability":"mutable","name":"memoryPointer","nameLocation":"6154:13:35","nodeType":"VariableDeclaration","scope":10618,"src":"6146:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10506,"name":"uint256","nodeType":"ElementaryTypeName","src":"6146:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6089:79:35"},"returnParameters":{"id":10509,"nodeType":"ParameterList","parameters":[],"src":"6183:0:35"},"scope":10665,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10664,"nodeType":"FunctionDefinition","src":"8945:812:35","nodes":[],"body":{"id":10663,"nodeType":"Block","src":"9059:698:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10630,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10625,"src":"9069:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":10631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9079:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9069:12:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10645,"nodeType":"IfStatement","src":"9065:112:35","trueBody":{"id":10644,"nodeType":"Block","src":"9083:94:35","statements":[{"id":10643,"nodeType":"UncheckedBlock","src":"9091:80:35","statements":[{"expression":{"id":10637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10633,"name":"storagePointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"9111:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10634,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10625,"src":"9129:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3332","id":10635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9138:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9129:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9111:29:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10638,"nodeType":"ExpressionStatement","src":"9111:29:35"},{"expression":{"id":10641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10639,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10625,"src":"9150:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"%=","rightHandSide":{"hexValue":"3332","id":10640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9160:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9150:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10642,"nodeType":"ExpressionStatement","src":"9150:12:35"}]}]}},{"AST":{"nativeSrc":"9319:77:35","nodeType":"YulBlock","src":"9319:77:35","statements":[{"nativeSrc":"9327:63:35","nodeType":"YulAssignment","src":"9327:63:35","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9345:6:35","nodeType":"YulIdentifier","src":"9345:6:35"},{"name":"BYTE_TO_BITS","nativeSrc":"9353:12:35","nodeType":"YulIdentifier","src":"9353:12:35"}],"functionName":{"name":"mul","nativeSrc":"9341:3:35","nodeType":"YulIdentifier","src":"9341:3:35"},"nativeSrc":"9341:25:35","nodeType":"YulFunctionCall","src":"9341:25:35"},{"arguments":[{"name":"storagePointer","nativeSrc":"9374:14:35","nodeType":"YulIdentifier","src":"9374:14:35"}],"functionName":{"name":"sload","nativeSrc":"9368:5:35","nodeType":"YulIdentifier","src":"9368:5:35"},"nativeSrc":"9368:21:35","nodeType":"YulFunctionCall","src":"9368:21:35"}],"functionName":{"name":"shl","nativeSrc":"9337:3:35","nodeType":"YulIdentifier","src":"9337:3:35"},"nativeSrc":"9337:53:35","nodeType":"YulFunctionCall","src":"9337:53:35"},"variableNames":[{"name":"result","nativeSrc":"9327:6:35","nodeType":"YulIdentifier","src":"9327:6:35"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":21539,"isOffset":false,"isSlot":false,"src":"9353:12:35","valueSize":1},{"declaration":10625,"isOffset":false,"isSlot":false,"src":"9345:6:35","valueSize":1},{"declaration":10628,"isOffset":false,"isSlot":false,"src":"9327:6:35","valueSize":1},{"declaration":10621,"isOffset":false,"isSlot":false,"src":"9374:14:35","valueSize":1}],"id":10646,"nodeType":"InlineAssembly","src":"9310:86:35"},{"assignments":[10648],"declarations":[{"constant":false,"id":10648,"mutability":"mutable","name":"wordRemainder","nameLocation":"9410:13:35","nodeType":"VariableDeclaration","scope":10663,"src":"9402:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10647,"name":"uint256","nodeType":"ElementaryTypeName","src":"9402:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10649,"nodeType":"VariableDeclarationStatement","src":"9402:21:35"},{"id":10656,"nodeType":"UncheckedBlock","src":"9482:52:35","statements":[{"expression":{"id":10654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10650,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10648,"src":"9500:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":10651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9516:2:35","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10652,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10625,"src":"9521:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9500:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10655,"nodeType":"ExpressionStatement","src":"9500:27:35"}]},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10657,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10623,"src":"9598:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10658,"name":"wordRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10648,"src":"9607:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9598:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10662,"nodeType":"IfStatement","src":"9594:159:35","trueBody":{"id":10661,"nodeType":"Block","src":"9622:131:35","statements":[{"AST":{"nativeSrc":"9639:108:35","nodeType":"YulBlock","src":"9639:108:35","statements":[{"nativeSrc":"9649:90:35","nodeType":"YulAssignment","src":"9649:90:35","value":{"arguments":[{"name":"result","nativeSrc":"9662:6:35","nodeType":"YulIdentifier","src":"9662:6:35"},{"arguments":[{"arguments":[{"name":"wordRemainder","nativeSrc":"9678:13:35","nodeType":"YulIdentifier","src":"9678:13:35"},{"name":"BYTE_TO_BITS","nativeSrc":"9693:12:35","nodeType":"YulIdentifier","src":"9693:12:35"}],"functionName":{"name":"mul","nativeSrc":"9674:3:35","nodeType":"YulIdentifier","src":"9674:3:35"},"nativeSrc":"9674:32:35","nodeType":"YulFunctionCall","src":"9674:32:35"},{"arguments":[{"arguments":[{"name":"storagePointer","nativeSrc":"9718:14:35","nodeType":"YulIdentifier","src":"9718:14:35"},{"kind":"number","nativeSrc":"9734:1:35","nodeType":"YulLiteral","src":"9734:1:35","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9714:3:35","nodeType":"YulIdentifier","src":"9714:3:35"},"nativeSrc":"9714:22:35","nodeType":"YulFunctionCall","src":"9714:22:35"}],"functionName":{"name":"sload","nativeSrc":"9708:5:35","nodeType":"YulIdentifier","src":"9708:5:35"},"nativeSrc":"9708:29:35","nodeType":"YulFunctionCall","src":"9708:29:35"}],"functionName":{"name":"shr","nativeSrc":"9670:3:35","nodeType":"YulIdentifier","src":"9670:3:35"},"nativeSrc":"9670:68:35","nodeType":"YulFunctionCall","src":"9670:68:35"}],"functionName":{"name":"or","nativeSrc":"9659:2:35","nodeType":"YulIdentifier","src":"9659:2:35"},"nativeSrc":"9659:80:35","nodeType":"YulFunctionCall","src":"9659:80:35"},"variableNames":[{"name":"result","nativeSrc":"9649:6:35","nodeType":"YulIdentifier","src":"9649:6:35"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":21539,"isOffset":false,"isSlot":false,"src":"9693:12:35","valueSize":1},{"declaration":10628,"isOffset":false,"isSlot":false,"src":"9649:6:35","valueSize":1},{"declaration":10628,"isOffset":false,"isSlot":false,"src":"9662:6:35","valueSize":1},{"declaration":10621,"isOffset":false,"isSlot":false,"src":"9718:14:35","valueSize":1},{"declaration":10648,"isOffset":false,"isSlot":false,"src":"9678:13:35","valueSize":1}],"id":10660,"nodeType":"InlineAssembly","src":"9630:117:35"}]}}]},"documentation":{"id":10619,"nodeType":"StructuredDocumentation","src":"8460:482:35","text":" @notice Load up to 32 bytes from storage at a given pointer and offset.\n @dev Since fields are tightly packed, they can span more than one slot.\n Since they're max 32 bytes, they can span at most 2 slots.\n @param storagePointer The base storage location.\n @param length Length of the data in bytes.\n @param offset Offset within the storage location.\n @return result The loaded bytes, left-aligned bytes. Bytes beyond the length are not zeroed."},"implemented":true,"kind":"function","modifiers":[],"name":"loadField","nameLocation":"8954:9:35","parameters":{"id":10626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10621,"mutability":"mutable","name":"storagePointer","nameLocation":"8972:14:35","nodeType":"VariableDeclaration","scope":10664,"src":"8964:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10620,"name":"uint256","nodeType":"ElementaryTypeName","src":"8964:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10623,"mutability":"mutable","name":"length","nameLocation":"8996:6:35","nodeType":"VariableDeclaration","scope":10664,"src":"8988:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10622,"name":"uint256","nodeType":"ElementaryTypeName","src":"8988:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10625,"mutability":"mutable","name":"offset","nameLocation":"9012:6:35","nodeType":"VariableDeclaration","scope":10664,"src":"9004:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10624,"name":"uint256","nodeType":"ElementaryTypeName","src":"9004:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8963:56:35"},"returnParameters":{"id":10629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10628,"mutability":"mutable","name":"result","nameLocation":"9051:6:35","nodeType":"VariableDeclaration","scope":10664,"src":"9043:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9043:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9042:16:35"},"scope":10665,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Storage","contractDependencies":[],"contractKind":"library","documentation":{"id":10298,"nodeType":"StructuredDocumentation","src":"192:202:35","text":" @title Storage Library\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @dev Provides functions for low-level storage manipulation, including storing and retrieving bytes."},"fullyImplemented":true,"linearizedBaseContracts":[10665],"name":"Storage","nameLocation":"403:7:35","scope":10666,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":35}