{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"385:5289:231:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;385:5289:231;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"385:5289:231:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"RLPWriter is a library for encoding Solidity types to RLP bytes. Adapted from Bakaoh's         RLPEncode library (https://github.com/bakaoh/solidity-rlp-encode) with minor         modifications to improve legibility.\",\"custom:attribution\":\"https://github.com/bakaoh/solidity-rlp-encode\",\"kind\":\"dev\",\"methods\":{},\"title\":\"RLPWriter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/rlp/RLPWriter.sol\":\"RLPWriter\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/rlp/RLPWriter.sol":"RLPWriter"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"RLPWriter is a library for encoding Solidity types to RLP bytes. Adapted from Bakaoh's         RLPEncode library (https://github.com/bakaoh/solidity-rlp-encode) with minor         modifications to improve legibility.","title":"RLPWriter"},"ast":{"absolutePath":"src/libraries/rlp/RLPWriter.sol","id":116062,"exportedSymbols":{"RLPWriter":[116061]},"nodeType":"SourceUnit","src":"32:5643:231","nodes":[{"id":115564,"nodeType":"PragmaDirective","src":"32:23:231","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":116061,"nodeType":"ContractDefinition","src":"385:5289:231","nodes":[{"id":115606,"nodeType":"FunctionDefinition","src":"552:265:231","nodes":[],"body":{"id":115605,"nodeType":"Block","src":"632:185:231","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":115585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":115573,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115568,"src":"646:3:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"646:10:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":115575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"660:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"646:15:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":115584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":115579,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115568,"src":"671:3:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115581,"indexExpression":{"hexValue":"30","id":115580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"671:6:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":115578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"665:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":115577,"name":"uint8","nodeType":"ElementaryTypeName","src":"665:5:231","typeDescriptions":{}}},"id":115582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"665:13:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":115583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"681:3:231","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"665:19:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"646:38:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":115603,"nodeType":"Block","src":"727:84:231","statements":[{"expression":{"id":115601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115591,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115571,"src":"741:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":115595,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115568,"src":"778:3:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"778:10:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313238","id":115597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:3:231","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":115594,"name":"_writeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115844,"src":"765:12:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":115598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"765:29:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":115599,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115568,"src":"796:3:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":115592,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"748:3:231","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":115593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"748:16:231","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":115600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"748:52:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"741:59:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115602,"nodeType":"ExpressionStatement","src":"741:59:231"}]},"id":115604,"nodeType":"IfStatement","src":"642:169:231","trueBody":{"id":115590,"nodeType":"Block","src":"686:35:231","statements":[{"expression":{"id":115588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115586,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115571,"src":"700:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":115587,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115568,"src":"707:3:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"700:10:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115589,"nodeType":"ExpressionStatement","src":"700:10:231"}]}}]},"documentation":{"id":115566,"nodeType":"StructuredDocumentation","src":"409:138:231","text":"@notice RLP encodes a byte string.\n @param _in The byte string to encode.\n @return out_ The RLP encoded string in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes","nameLocation":"561:10:231","parameters":{"id":115569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115568,"mutability":"mutable","name":"_in","nameLocation":"585:3:231","nodeType":"VariableDeclaration","scope":115606,"src":"572:16:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115567,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:18:231"},"returnParameters":{"id":115572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115571,"mutability":"mutable","name":"out_","nameLocation":"626:4:231","nodeType":"VariableDeclaration","scope":115606,"src":"613:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115570,"name":"bytes","nodeType":"ElementaryTypeName","src":"613:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"612:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":115634,"nodeType":"FunctionDefinition","src":"1011:194:231","nodes":[],"body":{"id":115633,"nodeType":"Block","src":"1093:112:231","nodes":[],"statements":[{"expression":{"id":115619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115615,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115613,"src":"1103:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":115617,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115610,"src":"1120:3:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"id":115616,"name":"_flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116060,"src":"1111:8:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory[] memory) pure returns (bytes memory)"}},"id":115618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1111:13:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1103:21:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115620,"nodeType":"ExpressionStatement","src":"1103:21:231"},{"expression":{"id":115631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115621,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115613,"src":"1134:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":115625,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115613,"src":"1172:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1172:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313932","id":115627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1186:3:231","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"}],"id":115624,"name":"_writeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115844,"src":"1159:12:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":115628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1159:31:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":115629,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115613,"src":"1192:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":115622,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1142:3:231","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":115623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1142:16:231","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":115630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1142:56:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1134:64:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115632,"nodeType":"ExpressionStatement","src":"1134:64:231"}]},"documentation":{"id":115607,"nodeType":"StructuredDocumentation","src":"823:183:231","text":"@notice RLP encodes a list of RLP encoded byte byte strings.\n @param _in The list of RLP encoded byte strings.\n @return list_ The RLP encoded list of items in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeList","nameLocation":"1020:9:231","parameters":{"id":115611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115610,"mutability":"mutable","name":"_in","nameLocation":"1045:3:231","nodeType":"VariableDeclaration","scope":115634,"src":"1030:18:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":115608,"name":"bytes","nodeType":"ElementaryTypeName","src":"1030:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":115609,"nodeType":"ArrayTypeName","src":"1030:7:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1029:20:231"},"returnParameters":{"id":115614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115613,"mutability":"mutable","name":"list_","nameLocation":"1086:5:231","nodeType":"VariableDeclaration","scope":115634,"src":"1073:18:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115612,"name":"bytes","nodeType":"ElementaryTypeName","src":"1073:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1072:20:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":115652,"nodeType":"FunctionDefinition","src":"1344:128:231","nodes":[],"body":{"id":115651,"nodeType":"Block","src":"1426:46:231","nodes":[],"statements":[{"expression":{"id":115649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115642,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115640,"src":"1436:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":115646,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115637,"src":"1460:3:231","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":115645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1454:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":115644,"name":"bytes","nodeType":"ElementaryTypeName","src":"1454:5:231","typeDescriptions":{}}},"id":115647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1454:10:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":115643,"name":"writeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115606,"src":"1443:10:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":115648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1443:22:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1436:29:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115650,"nodeType":"ExpressionStatement","src":"1436:29:231"}]},"documentation":{"id":115635,"nodeType":"StructuredDocumentation","src":"1211:128:231","text":"@notice RLP encodes a string.\n @param _in The string to encode.\n @return out_ The RLP encoded string in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeString","nameLocation":"1353:11:231","parameters":{"id":115638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115637,"mutability":"mutable","name":"_in","nameLocation":"1379:3:231","nodeType":"VariableDeclaration","scope":115652,"src":"1365:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":115636,"name":"string","nodeType":"ElementaryTypeName","src":"1365:6:231","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1364:19:231"},"returnParameters":{"id":115641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115640,"mutability":"mutable","name":"out_","nameLocation":"1420:4:231","nodeType":"VariableDeclaration","scope":115652,"src":"1407:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115639,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1406:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":115670,"nodeType":"FunctionDefinition","src":"1615:134:231","nodes":[],"body":{"id":115669,"nodeType":"Block","src":"1692:57:231","nodes":[],"statements":[{"expression":{"id":115667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115660,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115658,"src":"1702:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":115664,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115655,"src":"1737:3:231","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":115662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1720:3:231","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":115663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1720:16:231","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":115665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1720:21:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":115661,"name":"writeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115606,"src":"1709:10:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":115666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1709:33:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1702:40:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115668,"nodeType":"ExpressionStatement","src":"1702:40:231"}]},"documentation":{"id":115653,"nodeType":"StructuredDocumentation","src":"1478:132:231","text":"@notice RLP encodes an address.\n @param _in The address to encode.\n @return out_ The RLP encoded address in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeAddress","nameLocation":"1624:12:231","parameters":{"id":115656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115655,"mutability":"mutable","name":"_in","nameLocation":"1645:3:231","nodeType":"VariableDeclaration","scope":115670,"src":"1637:11:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":115654,"name":"address","nodeType":"ElementaryTypeName","src":"1637:7:231","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1636:13:231"},"returnParameters":{"id":115659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115658,"mutability":"mutable","name":"out_","nameLocation":"1686:4:231","nodeType":"VariableDeclaration","scope":115670,"src":"1673:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115657,"name":"bytes","nodeType":"ElementaryTypeName","src":"1673:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1672:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":115687,"nodeType":"FunctionDefinition","src":"1888:124:231","nodes":[],"body":{"id":115686,"nodeType":"Block","src":"1962:50:231","nodes":[],"statements":[{"expression":{"id":115684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115678,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115676,"src":"1972:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":115681,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115673,"src":"2000:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115680,"name":"_toBinary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115911,"src":"1990:9:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":115682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1990:14:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":115679,"name":"writeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115606,"src":"1979:10:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":115683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1979:26:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1972:33:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115685,"nodeType":"ExpressionStatement","src":"1972:33:231"}]},"documentation":{"id":115671,"nodeType":"StructuredDocumentation","src":"1755:128:231","text":"@notice RLP encodes a uint.\n @param _in The uint256 to encode.\n @return out_ The RLP encoded uint256 in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeUint","nameLocation":"1897:9:231","parameters":{"id":115674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115673,"mutability":"mutable","name":"_in","nameLocation":"1915:3:231","nodeType":"VariableDeclaration","scope":115687,"src":"1907:11:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1906:13:231"},"returnParameters":{"id":115677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115676,"mutability":"mutable","name":"out_","nameLocation":"1956:4:231","nodeType":"VariableDeclaration","scope":115687,"src":"1943:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115675,"name":"bytes","nodeType":"ElementaryTypeName","src":"1943:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1942:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":115719,"nodeType":"FunctionDefinition","src":"2145:162:231","nodes":[],"body":{"id":115718,"nodeType":"Block","src":"2216:91:231","nodes":[],"statements":[{"expression":{"id":115700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115695,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115693,"src":"2226:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":115698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":115697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2233:9:231","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":115696,"name":"bytes","nodeType":"ElementaryTypeName","src":"2237:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":115699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:12:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2226:19:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115701,"nodeType":"ExpressionStatement","src":"2226:19:231"},{"expression":{"id":115716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":115702,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115693,"src":"2255:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115704,"indexExpression":{"hexValue":"30","id":115703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2260:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2255:7:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"condition":{"id":115705,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115690,"src":"2266:3:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30783830","id":115712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2294:4:231","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":115711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2287:6:231","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":115710,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2287:6:231","typeDescriptions":{}}},"id":115713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2287:12:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":115714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2266:33:231","trueExpression":{"arguments":[{"hexValue":"30783031","id":115708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2279:4:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":115707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2272:6:231","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":115706,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2272:6:231","typeDescriptions":{}}},"id":115709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:12:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"id":115715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2265:35:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2255:45:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":115717,"nodeType":"ExpressionStatement","src":"2255:45:231"}]},"documentation":{"id":115688,"nodeType":"StructuredDocumentation","src":"2018:122:231","text":"@notice RLP encodes a bool.\n @param _in The bool to encode.\n @return out_ The RLP encoded bool in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeBool","nameLocation":"2154:9:231","parameters":{"id":115691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115690,"mutability":"mutable","name":"_in","nameLocation":"2169:3:231","nodeType":"VariableDeclaration","scope":115719,"src":"2164:8:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":115689,"name":"bool","nodeType":"ElementaryTypeName","src":"2164:4:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2163:10:231"},"returnParameters":{"id":115694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115693,"mutability":"mutable","name":"out_","nameLocation":"2210:4:231","nodeType":"VariableDeclaration","scope":115719,"src":"2197:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115692,"name":"bytes","nodeType":"ElementaryTypeName","src":"2197:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2196:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":115844,"nodeType":"FunctionDefinition","src":"2585:650:231","nodes":[],"body":{"id":115843,"nodeType":"Block","src":"2679:556:231","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115729,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115722,"src":"2693:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3536","id":115730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:2:231","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"2693:9:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":115841,"nodeType":"Block","src":"2814:415:231","statements":[{"assignments":[115758],"declarations":[{"constant":false,"id":115758,"mutability":"mutable","name":"lenLen","nameLocation":"2836:6:231","nodeType":"VariableDeclaration","scope":115841,"src":"2828:14:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115759,"nodeType":"VariableDeclarationStatement","src":"2828:14:231"},{"assignments":[115761],"declarations":[{"constant":false,"id":115761,"mutability":"mutable","name":"i","nameLocation":"2864:1:231","nodeType":"VariableDeclaration","scope":115841,"src":"2856:9:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115760,"name":"uint256","nodeType":"ElementaryTypeName","src":"2856:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115763,"initialValue":{"hexValue":"31","id":115762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2868:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2856:13:231"},{"body":{"id":115776,"nodeType":"Block","src":"2905:67:231","statements":[{"expression":{"id":115770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2923:8:231","subExpression":{"id":115769,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115758,"src":"2923:6:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115771,"nodeType":"ExpressionStatement","src":"2923:8:231"},{"expression":{"id":115774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115772,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"2949:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"hexValue":"323536","id":115773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:3:231","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"2949:8:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115775,"nodeType":"ExpressionStatement","src":"2949:8:231"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115764,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115722,"src":"2890:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":115765,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"2897:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2890:8:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":115767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2902:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2890:13:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115777,"nodeType":"WhileStatement","src":"2883:89:231"},{"expression":{"id":115785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115778,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115727,"src":"2986:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115781,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115758,"src":"3003:6:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":115782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3012:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3003:10:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2993:9:231","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":115779,"name":"bytes","nodeType":"ElementaryTypeName","src":"2997:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":115784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2993:21:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2986:28:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115786,"nodeType":"ExpressionStatement","src":"2986:28:231"},{"expression":{"id":115804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":115787,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115727,"src":"3028:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115789,"indexExpression":{"hexValue":"30","id":115788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3028:7:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":115802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":115800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":115794,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115758,"src":"3051:6:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3045:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":115792,"name":"uint8","nodeType":"ElementaryTypeName","src":"3045:5:231","typeDescriptions":{}}},"id":115795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3045:13:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":115798,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115724,"src":"3067:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3061:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":115796,"name":"uint8","nodeType":"ElementaryTypeName","src":"3061:5:231","typeDescriptions":{}}},"id":115799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3061:14:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3045:30:231","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3535","id":115801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3078:2:231","typeDescriptions":{"typeIdentifier":"t_rational_55_by_1","typeString":"int_const 55"},"value":"55"},"src":"3045:35:231","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":115791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3038:6:231","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":115790,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3038:6:231","typeDescriptions":{}}},"id":115803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3038:43:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3028:53:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":115805,"nodeType":"ExpressionStatement","src":"3028:53:231"},{"body":{"id":115839,"nodeType":"Block","src":"3125:94:231","statements":[{"expression":{"id":115837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":115816,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115727,"src":"3143:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115818,"indexExpression":{"id":115817,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"3148:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3143:7:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115823,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115722,"src":"3167:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":115824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:3:231","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115825,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115758,"src":"3183:6:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":115826,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"3192:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3183:10:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":115828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3182:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3175:19:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":115830,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3174:21:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3167:28:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":115832,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3166:30:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"323536","id":115833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3199:3:231","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"3166:36:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3160:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":115821,"name":"uint8","nodeType":"ElementaryTypeName","src":"3160:5:231","typeDescriptions":{}}},"id":115835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3160:43:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":115820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3153:6:231","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":115819,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3153:6:231","typeDescriptions":{}}},"id":115836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3153:51:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3143:61:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":115838,"nodeType":"ExpressionStatement","src":"3143:61:231"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"3107:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":115811,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115758,"src":"3112:6:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3107:11:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115840,"initializationExpression":{"expression":{"id":115808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"3100:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":115807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3104:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3100:5:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115809,"nodeType":"ExpressionStatement","src":"3100:5:231"},"loopExpression":{"expression":{"id":115814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3120:3:231","subExpression":{"id":115813,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115761,"src":"3120:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115815,"nodeType":"ExpressionStatement","src":"3120:3:231"},"nodeType":"ForStatement","src":"3095:124:231"}]},"id":115842,"nodeType":"IfStatement","src":"2689:540:231","trueBody":{"id":115756,"nodeType":"Block","src":"2704:104:231","statements":[{"expression":{"id":115737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115732,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115727,"src":"2718:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":115735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2735:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":115734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2725:9:231","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":115733,"name":"bytes","nodeType":"ElementaryTypeName","src":"2729:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":115736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2725:12:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2718:19:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115738,"nodeType":"ExpressionStatement","src":"2718:19:231"},{"expression":{"id":115754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":115739,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115727,"src":"2751:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115741,"indexExpression":{"hexValue":"30","id":115740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2751:7:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":115752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":115746,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115722,"src":"2774:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2768:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":115744,"name":"uint8","nodeType":"ElementaryTypeName","src":"2768:5:231","typeDescriptions":{}}},"id":115747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2768:11:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":115750,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115724,"src":"2788:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2782:5:231","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":115748,"name":"uint8","nodeType":"ElementaryTypeName","src":"2782:5:231","typeDescriptions":{}}},"id":115751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2782:14:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2768:28:231","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":115743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:6:231","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":115742,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2761:6:231","typeDescriptions":{}}},"id":115753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2761:36:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2751:46:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":115755,"nodeType":"ExpressionStatement","src":"2751:46:231"}]}}]},"documentation":{"id":115720,"nodeType":"StructuredDocumentation","src":"2313:267:231","text":"@notice Encode the first byte and then the `len` in binary form if `length` is more than 55.\n @param _len    The length of the string or the payload.\n @param _offset 128 if item is string, 192 if item is list.\n @return out_ RLP encoded bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"_writeLength","nameLocation":"2594:12:231","parameters":{"id":115725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115722,"mutability":"mutable","name":"_len","nameLocation":"2615:4:231","nodeType":"VariableDeclaration","scope":115844,"src":"2607:12:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115721,"name":"uint256","nodeType":"ElementaryTypeName","src":"2607:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":115724,"mutability":"mutable","name":"_offset","nameLocation":"2629:7:231","nodeType":"VariableDeclaration","scope":115844,"src":"2621:15:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115723,"name":"uint256","nodeType":"ElementaryTypeName","src":"2621:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2606:31:231"},"returnParameters":{"id":115728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115727,"mutability":"mutable","name":"out_","nameLocation":"2673:4:231","nodeType":"VariableDeclaration","scope":115844,"src":"2660:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115726,"name":"bytes","nodeType":"ElementaryTypeName","src":"2660:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2659:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":115911,"nodeType":"FunctionDefinition","src":"3403:383:231","nodes":[],"body":{"id":115910,"nodeType":"Block","src":"3475:311:231","nodes":[],"statements":[{"assignments":[115853],"declarations":[{"constant":false,"id":115853,"mutability":"mutable","name":"b","nameLocation":"3498:1:231","nodeType":"VariableDeclaration","scope":115910,"src":"3485:14:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115852,"name":"bytes","nodeType":"ElementaryTypeName","src":"3485:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":115858,"initialValue":{"arguments":[{"id":115856,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115847,"src":"3519:2:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":115854,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3502:3:231","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":115855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3502:16:231","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":115857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3502:20:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3485:37:231"},{"assignments":[115860],"declarations":[{"constant":false,"id":115860,"mutability":"mutable","name":"i","nameLocation":"3541:1:231","nodeType":"VariableDeclaration","scope":115910,"src":"3533:9:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115859,"name":"uint256","nodeType":"ElementaryTypeName","src":"3533:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115862,"initialValue":{"hexValue":"30","id":115861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3545:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3533:13:231"},{"body":{"id":115877,"nodeType":"Block","src":"3576:77:231","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":115873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":115869,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115853,"src":"3594:1:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115871,"indexExpression":{"id":115870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115860,"src":"3596:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3594:4:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":115872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3602:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3594:9:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115876,"nodeType":"IfStatement","src":"3590:53:231","trueBody":{"id":115875,"nodeType":"Block","src":"3605:38:231","statements":[{"id":115874,"nodeType":"Break","src":"3623:5:231"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115863,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115860,"src":"3563:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":115864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3567:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3563:6:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115878,"loopExpression":{"expression":{"id":115867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3571:3:231","subExpression":{"id":115866,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115860,"src":"3571:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115868,"nodeType":"ExpressionStatement","src":"3571:3:231"},"nodeType":"ForStatement","src":"3556:97:231"},{"expression":{"id":115886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115879,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115850,"src":"3663:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":115882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3680:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":115883,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115860,"src":"3685:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3680:6:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":115881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3670:9:231","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":115880,"name":"bytes","nodeType":"ElementaryTypeName","src":"3674:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":115885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3670:17:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3663:24:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115887,"nodeType":"ExpressionStatement","src":"3663:24:231"},{"body":{"id":115908,"nodeType":"Block","src":"3739:41:231","statements":[{"expression":{"id":115906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":115899,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115850,"src":"3753:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115901,"indexExpression":{"id":115900,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115889,"src":"3758:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3753:7:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":115902,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115853,"src":"3763:1:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115905,"indexExpression":{"id":115904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3765:3:231","subExpression":{"id":115903,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115860,"src":"3765:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3763:6:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3753:16:231","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":115907,"nodeType":"ExpressionStatement","src":"3753:16:231"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115892,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115889,"src":"3717:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":115893,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115850,"src":"3721:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":115894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3721:11:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3717:15:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115909,"initializationExpression":{"assignments":[115889],"declarations":[{"constant":false,"id":115889,"mutability":"mutable","name":"j","nameLocation":"3710:1:231","nodeType":"VariableDeclaration","scope":115909,"src":"3702:9:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115888,"name":"uint256","nodeType":"ElementaryTypeName","src":"3702:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115891,"initialValue":{"hexValue":"30","id":115890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3714:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3702:13:231"},"loopExpression":{"expression":{"id":115897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3734:3:231","subExpression":{"id":115896,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115889,"src":"3734:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115898,"nodeType":"ExpressionStatement","src":"3734:3:231"},"nodeType":"ForStatement","src":"3697:83:231"}]},"documentation":{"id":115845,"nodeType":"StructuredDocumentation","src":"3241:157:231","text":"@notice Encode integer in big endian binary form with no leading zeroes.\n @param _x The integer to encode.\n @return out_ RLP encoded bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"_toBinary","nameLocation":"3412:9:231","parameters":{"id":115848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115847,"mutability":"mutable","name":"_x","nameLocation":"3430:2:231","nodeType":"VariableDeclaration","scope":115911,"src":"3422:10:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115846,"name":"uint256","nodeType":"ElementaryTypeName","src":"3422:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3421:12:231"},"returnParameters":{"id":115851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115850,"mutability":"mutable","name":"out_","nameLocation":"3469:4:231","nodeType":"VariableDeclaration","scope":115911,"src":"3456:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115849,"name":"bytes","nodeType":"ElementaryTypeName","src":"3456:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3455:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":115968,"nodeType":"FunctionDefinition","src":"4059:618:231","nodes":[],"body":{"id":115967,"nodeType":"Block","src":"4132:545:231","nodes":[],"statements":[{"assignments":[115922],"declarations":[{"constant":false,"id":115922,"mutability":"mutable","name":"dest","nameLocation":"4150:4:231","nodeType":"VariableDeclaration","scope":115967,"src":"4142:12:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115921,"name":"uint256","nodeType":"ElementaryTypeName","src":"4142:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115924,"initialValue":{"id":115923,"name":"_dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115914,"src":"4157:5:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4142:20:231"},{"assignments":[115926],"declarations":[{"constant":false,"id":115926,"mutability":"mutable","name":"src","nameLocation":"4180:3:231","nodeType":"VariableDeclaration","scope":115967,"src":"4172:11:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115925,"name":"uint256","nodeType":"ElementaryTypeName","src":"4172:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115928,"initialValue":{"id":115927,"name":"_src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115916,"src":"4186:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4172:18:231"},{"assignments":[115930],"declarations":[{"constant":false,"id":115930,"mutability":"mutable","name":"len","nameLocation":"4208:3:231","nodeType":"VariableDeclaration","scope":115967,"src":"4200:11:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115929,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115932,"initialValue":{"id":115931,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115918,"src":"4214:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4200:18:231"},{"body":{"id":115949,"nodeType":"Block","src":"4258:136:231","statements":[{"AST":{"nodeType":"YulBlock","src":"4281:56:231","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"4306:4:231"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4318:3:231"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4312:5:231"},"nodeType":"YulFunctionCall","src":"4312:10:231"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4299:6:231"},"nodeType":"YulFunctionCall","src":"4299:24:231"},"nodeType":"YulExpressionStatement","src":"4299:24:231"}]},"evmVersion":"london","externalReferences":[{"declaration":115922,"isOffset":false,"isSlot":false,"src":"4306:4:231","valueSize":1},{"declaration":115926,"isOffset":false,"isSlot":false,"src":"4318:3:231","valueSize":1}],"id":115940,"nodeType":"InlineAssembly","src":"4272:65:231"},{"expression":{"id":115943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115941,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115922,"src":"4350:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":115942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4358:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4350:10:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115944,"nodeType":"ExpressionStatement","src":"4350:10:231"},{"expression":{"id":115947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115945,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115926,"src":"4374:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":115946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4381:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4374:9:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115948,"nodeType":"ExpressionStatement","src":"4374:9:231"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115933,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115930,"src":"4236:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":115934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4243:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4236:9:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115950,"loopExpression":{"expression":{"id":115938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115936,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115930,"src":"4247:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":115937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4254:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4247:9:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115939,"nodeType":"ExpressionStatement","src":"4247:9:231"},"nodeType":"ForStatement","src":"4229:165:231"},{"assignments":[115952],"declarations":[{"constant":false,"id":115952,"mutability":"mutable","name":"mask","nameLocation":"4412:4:231","nodeType":"VariableDeclaration","scope":115967,"src":"4404:12:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115951,"name":"uint256","nodeType":"ElementaryTypeName","src":"4404:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115953,"nodeType":"VariableDeclarationStatement","src":"4404:12:231"},{"id":115965,"nodeType":"UncheckedBlock","src":"4426:63:231","statements":[{"expression":{"id":115963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115954,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115952,"src":"4450:4:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":115955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4457:3:231","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":115956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4465:2:231","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":115957,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115930,"src":"4470:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4465:8:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":115959,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4464:10:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4457:17:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":115961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4477:1:231","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4457:21:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4450:28:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":115964,"nodeType":"ExpressionStatement","src":"4450:28:231"}]},{"AST":{"nodeType":"YulBlock","src":"4507:164:231","statements":[{"nodeType":"YulVariableDeclaration","src":"4521:41:231","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4546:3:231"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4540:5:231"},"nodeType":"YulFunctionCall","src":"4540:10:231"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"4556:4:231"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4552:3:231"},"nodeType":"YulFunctionCall","src":"4552:9:231"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4536:3:231"},"nodeType":"YulFunctionCall","src":"4536:26:231"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"4525:7:231","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4575:38:231","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"4601:4:231"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4595:5:231"},"nodeType":"YulFunctionCall","src":"4595:11:231"},{"name":"mask","nodeType":"YulIdentifier","src":"4608:4:231"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4591:3:231"},"nodeType":"YulFunctionCall","src":"4591:22:231"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"4579:8:231","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"4633:4:231"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"4642:8:231"},{"name":"srcpart","nodeType":"YulIdentifier","src":"4652:7:231"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4639:2:231"},"nodeType":"YulFunctionCall","src":"4639:21:231"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4626:6:231"},"nodeType":"YulFunctionCall","src":"4626:35:231"},"nodeType":"YulExpressionStatement","src":"4626:35:231"}]},"evmVersion":"london","externalReferences":[{"declaration":115922,"isOffset":false,"isSlot":false,"src":"4601:4:231","valueSize":1},{"declaration":115922,"isOffset":false,"isSlot":false,"src":"4633:4:231","valueSize":1},{"declaration":115952,"isOffset":false,"isSlot":false,"src":"4556:4:231","valueSize":1},{"declaration":115952,"isOffset":false,"isSlot":false,"src":"4608:4:231","valueSize":1},{"declaration":115926,"isOffset":false,"isSlot":false,"src":"4546:3:231","valueSize":1}],"id":115966,"nodeType":"InlineAssembly","src":"4498:173:231"}]},"documentation":{"id":115912,"nodeType":"StructuredDocumentation","src":"3792:262:231","text":"@custom:attribution https://github.com/Arachnid/solidity-stringutils\n @notice Copies a piece of memory to another location.\n @param _dest Destination location.\n @param _src  Source location.\n @param _len  Length of memory to copy."},"implemented":true,"kind":"function","modifiers":[],"name":"_memcpy","nameLocation":"4068:7:231","parameters":{"id":115919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115914,"mutability":"mutable","name":"_dest","nameLocation":"4084:5:231","nodeType":"VariableDeclaration","scope":115968,"src":"4076:13:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115913,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":115916,"mutability":"mutable","name":"_src","nameLocation":"4099:4:231","nodeType":"VariableDeclaration","scope":115968,"src":"4091:12:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115915,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":115918,"mutability":"mutable","name":"_len","nameLocation":"4113:4:231","nodeType":"VariableDeclaration","scope":115968,"src":"4105:12:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115917,"name":"uint256","nodeType":"ElementaryTypeName","src":"4105:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:43:231"},"returnParameters":{"id":115920,"nodeType":"ParameterList","parameters":[],"src":"4132:0:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":116060,"nodeType":"FunctionDefinition","src":"4931:741:231","nodes":[],"body":{"id":116059,"nodeType":"Block","src":"5012:660:231","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":115977,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115972,"src":"5026:5:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":115978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5026:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":115979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5042:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5026:17:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115987,"nodeType":"IfStatement","src":"5022:67:231","trueBody":{"id":115986,"nodeType":"Block","src":"5045:44:231","statements":[{"expression":{"arguments":[{"hexValue":"30","id":115983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5076:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":115982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5066:9:231","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":115981,"name":"bytes","nodeType":"ElementaryTypeName","src":"5070:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":115984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:12:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":115976,"id":115985,"nodeType":"Return","src":"5059:19:231"}]}},{"assignments":[115989],"declarations":[{"constant":false,"id":115989,"mutability":"mutable","name":"len","nameLocation":"5107:3:231","nodeType":"VariableDeclaration","scope":116059,"src":"5099:11:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115988,"name":"uint256","nodeType":"ElementaryTypeName","src":"5099:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115990,"nodeType":"VariableDeclarationStatement","src":"5099:11:231"},{"assignments":[115992],"declarations":[{"constant":false,"id":115992,"mutability":"mutable","name":"i","nameLocation":"5128:1:231","nodeType":"VariableDeclaration","scope":116059,"src":"5120:9:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":115991,"name":"uint256","nodeType":"ElementaryTypeName","src":"5120:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115994,"initialValue":{"hexValue":"30","id":115993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5132:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5120:13:231"},{"body":{"id":116009,"nodeType":"Block","src":"5173:47:231","statements":[{"expression":{"id":116007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116002,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115989,"src":"5187:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":116003,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115972,"src":"5194:5:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":116005,"indexExpression":{"id":116004,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5200:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:8:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":116006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5194:15:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5187:22:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":116008,"nodeType":"ExpressionStatement","src":"5187:22:231"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5150:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":115996,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115972,"src":"5154:5:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":115997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5154:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:16:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":116010,"loopExpression":{"expression":{"id":116000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5168:3:231","subExpression":{"id":115999,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5168:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":116001,"nodeType":"ExpressionStatement","src":"5168:3:231"},"nodeType":"ForStatement","src":"5143:77:231"},{"expression":{"id":116016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116011,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115975,"src":"5230:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":116014,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115989,"src":"5247:3:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":116013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5237:9:231","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":116012,"name":"bytes","nodeType":"ElementaryTypeName","src":"5241:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":116015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5237:14:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5230:21:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":116017,"nodeType":"ExpressionStatement","src":"5230:21:231"},{"assignments":[116019],"declarations":[{"constant":false,"id":116019,"mutability":"mutable","name":"flattenedPtr","nameLocation":"5269:12:231","nodeType":"VariableDeclaration","scope":116059,"src":"5261:20:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":116018,"name":"uint256","nodeType":"ElementaryTypeName","src":"5261:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":116020,"nodeType":"VariableDeclarationStatement","src":"5261:20:231"},{"AST":{"nodeType":"YulBlock","src":"5300:55:231","statements":[{"nodeType":"YulAssignment","src":"5314:31:231","value":{"arguments":[{"name":"out_","nodeType":"YulIdentifier","src":"5334:4:231"},{"kind":"number","nodeType":"YulLiteral","src":"5340:4:231","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5330:3:231"},"nodeType":"YulFunctionCall","src":"5330:15:231"},"variableNames":[{"name":"flattenedPtr","nodeType":"YulIdentifier","src":"5314:12:231"}]}]},"evmVersion":"london","externalReferences":[{"declaration":116019,"isOffset":false,"isSlot":false,"src":"5314:12:231","valueSize":1},{"declaration":115975,"isOffset":false,"isSlot":false,"src":"5334:4:231","valueSize":1}],"id":116021,"nodeType":"InlineAssembly","src":"5291:64:231"},{"body":{"id":116057,"nodeType":"Block","src":"5400:266:231","statements":[{"assignments":[116034],"declarations":[{"constant":false,"id":116034,"mutability":"mutable","name":"item","nameLocation":"5427:4:231","nodeType":"VariableDeclaration","scope":116057,"src":"5414:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":116033,"name":"bytes","nodeType":"ElementaryTypeName","src":"5414:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":116038,"initialValue":{"baseExpression":{"id":116035,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115972,"src":"5434:5:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":116037,"indexExpression":{"id":116036,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5440:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5434:8:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5414:28:231"},{"assignments":[116040],"declarations":[{"constant":false,"id":116040,"mutability":"mutable","name":"listPtr","nameLocation":"5465:7:231","nodeType":"VariableDeclaration","scope":116057,"src":"5457:15:231","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":116039,"name":"uint256","nodeType":"ElementaryTypeName","src":"5457:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":116041,"nodeType":"VariableDeclarationStatement","src":"5457:15:231"},{"AST":{"nodeType":"YulBlock","src":"5495:58:231","statements":[{"nodeType":"YulAssignment","src":"5513:26:231","value":{"arguments":[{"name":"item","nodeType":"YulIdentifier","src":"5528:4:231"},{"kind":"number","nodeType":"YulLiteral","src":"5534:4:231","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5524:3:231"},"nodeType":"YulFunctionCall","src":"5524:15:231"},"variableNames":[{"name":"listPtr","nodeType":"YulIdentifier","src":"5513:7:231"}]}]},"evmVersion":"london","externalReferences":[{"declaration":116034,"isOffset":false,"isSlot":false,"src":"5528:4:231","valueSize":1},{"declaration":116040,"isOffset":false,"isSlot":false,"src":"5513:7:231","valueSize":1}],"id":116042,"nodeType":"InlineAssembly","src":"5486:67:231"},{"expression":{"arguments":[{"id":116044,"name":"flattenedPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116019,"src":"5575:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":116045,"name":"listPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116040,"src":"5589:7:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":116046,"name":"item","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116034,"src":"5598:4:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":116047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5598:11:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":116043,"name":"_memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115968,"src":"5567:7:231","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":116048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5567:43:231","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":116049,"nodeType":"ExpressionStatement","src":"5567:43:231"},{"expression":{"id":116055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116050,"name":"flattenedPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":116019,"src":"5624:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":116051,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115972,"src":"5640:5:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":116053,"indexExpression":{"id":116052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5646:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5640:8:231","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":116054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5640:15:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5624:31:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":116056,"nodeType":"ExpressionStatement","src":"5624:31:231"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":116029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":116026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5377:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":116027,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115972,"src":"5381:5:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":116028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5381:12:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5377:16:231","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":116058,"initializationExpression":{"expression":{"id":116024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116022,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5370:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":116023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5374:1:231","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5370:5:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":116025,"nodeType":"ExpressionStatement","src":"5370:5:231"},"loopExpression":{"expression":{"id":116031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5395:3:231","subExpression":{"id":116030,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115992,"src":"5395:1:231","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":116032,"nodeType":"ExpressionStatement","src":"5395:3:231"},"nodeType":"ForStatement","src":"5365:301:231"}]},"documentation":{"id":115969,"nodeType":"StructuredDocumentation","src":"4683:243:231","text":"@custom:attribution https://github.com/sammayo/solidity-rlp-encoder\n @notice Flattens a list of byte strings into one byte string.\n @param _list List of byte strings to flatten.\n @return out_ The flattened byte string."},"implemented":true,"kind":"function","modifiers":[],"name":"_flatten","nameLocation":"4940:8:231","parameters":{"id":115973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115972,"mutability":"mutable","name":"_list","nameLocation":"4964:5:231","nodeType":"VariableDeclaration","scope":116060,"src":"4949:20:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":115970,"name":"bytes","nodeType":"ElementaryTypeName","src":"4949:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":115971,"nodeType":"ArrayTypeName","src":"4949:7:231","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"4948:22:231"},"returnParameters":{"id":115976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115975,"mutability":"mutable","name":"out_","nameLocation":"5006:4:231","nodeType":"VariableDeclaration","scope":116060,"src":"4993:17:231","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":115974,"name":"bytes","nodeType":"ElementaryTypeName","src":"4993:5:231","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4992:19:231"},"scope":116061,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"RLPWriter","contractDependencies":[],"contractKind":"library","documentation":{"id":115565,"nodeType":"StructuredDocumentation","src":"57:328:231","text":"@custom:attribution https://github.com/bakaoh/solidity-rlp-encode\n @title RLPWriter\n @author RLPWriter is a library for encoding Solidity types to RLP bytes. Adapted from Bakaoh's\n         RLPEncode library (https://github.com/bakaoh/solidity-rlp-encode) with minor\n         modifications to improve legibility."},"fullyImplemented":true,"linearizedBaseContracts":[116061],"name":"RLPWriter","nameLocation":"393:9:231","scope":116062,"usedErrors":[]}],"license":"MIT"},"id":231}